From: Arnaud D. <ada...@ap...> - 2015-01-21 17:53:34
|
Hi all, i'm just new to PLplot and today i successfully managed to install MinGW, CMake and all the related stuff and then i compiled the DLL and A files. It was not very easy but it seems that i got all files in the end. In a next step i tried to compile an example. I moved all .h files, .a files, .dll files and the example's .c file into a test directory and successfully compiled using "gcc -otest.exe lib...dll.a etc (the list of all .a files)". When i run the file i get the error message that it couldn't find the driver's directory. Note that i have built PLplot without the examples as i need to build my own example separately in either Embarcadero C++ builder, devCpp or MinGW. I don't think i have any build issues, just need to find out what to do with the drivers, where to locate them and so on. I have tried to move the driver's directory into my projects directory without success. I actually don't think that those files are the drivers. Should the drivers be built separately? if yes, what is the cmake command to build the drivers? Where will "make install" locate the drivers after i make them with gcc. Why are they not compiler together with PLplot? I have found a discussion about the same issue on the mailing list but the discussion ends without providing an answer. Thanks for your help. Arnaud. |
From: Alan W. I. <ir...@be...> - 2015-01-21 19:56:50
|
On 2015-01-21 18:26+0100 Arnaud Darmont wrote: > Hi all, > > i'm just new to PLplot and today i successfully managed to install > MinGW, CMake and all the related stuff and then i compiled the DLL and A > files. It was not very easy but it seems that i got all files in the end. > > In a next step i tried to compile an example. I moved all .h files, .a > files, .dll files and the example's .c file into a test directory and > successfully compiled using "gcc -otest.exe lib...dll.a etc (the list of > all .a files)". > > When i run the file i get the error message that it couldn't find the > driver's directory. > > Note that i have built PLplot without the examples as i need to build my > own example separately in either Embarcadero C++ builder, devCpp or MinGW. > > I don't think i have any build issues, just need to find out what to do > with the drivers, where to locate them and so on. I have tried to move > the driver's directory into my projects directory without success. I > actually don't think that those files are the drivers. Should the > drivers be built separately? if yes, what is the cmake command to build > the drivers? Where will "make install" locate the drivers after i make > them with gcc. Why are they not compiler together with PLplot? > > I have found a discussion about the same issue on the mailing list but > the discussion ends without providing an answer. As you have discovered, attempting to collect everything you need can be error-prone so instead use the cmake option -DCMAKE_INSTALL_PREFIX=<wherever you want the install prefix to be>, and after cmake is run, then run the command "make install" to collect all necessary PLplot files (including libraries, drivers, etc.) in an organized way in the install tree with the prefix location you have specified. Then change directories to $prefix/share/plplot5$version/examples (where $prefix is the above install prefix and $version refers to whatever version of plplot you have installed. In that location you will find two build systems for the installed examples which should give you some ideas about the best way to build your own applications against the PLplot libraries. 1. The traditional build system for the installed examples is based on make + pkg-config, and you can find out more about it by looking into the Makefile files in that installed examples directory and subdirectories. This build approach may or may not be suitable for your needs since it all depends on whether you have access to pkg-config which on Windows platforms is available for Cygwin, and the combination of MinGW-w64 + MSYS2, but not for MinGW alone (a quite different and much older project than MinGW-w64) or for the combination of MinGW + MSYS (where MSYS is a quite different and older project than MSYS2). To find out more about the MSYS2 possibility (which automatically includes MinGW-w64), take a look at http://sourceforge.net/p/msys2/wiki/Home/. 2. The CMake-based build system for the installed examples is implemented by the CMakeLists.txt file you will see in the installed examples directory and files it refers to there. The CMake-based approach is the one I recommend for you if you have some basic knowledge of CMake logic (or are willing to spend a day or so learning such basic knowledge) since it should work on any platform. To see this CMake-based build system in action you should (important! since this leaves the installed examples tree in a desireable pristine condition) create an intially empty build directory, change to that directory, (important!) put $install/bin on your PATH environment variable, then execute cmake $install/share/plplot5$version/examples to configure the build of the installed examples. Afterwards, you can build all examples by running, e.g., make VERBOSE=1 and you can also run some of those built examples using, e.g., c/x00c -dev psc -o test.psc to confirm, for example, that the drivers are being found properly. At this stage, you have two further choices. You could simply cut and paste from the make VERBOSE=1 results to figure out how to build your own code against PLplot or you could adapt the existing CMake-based build system for the installed examples (mostly by getting rid of large parts of it that are not relevant to your needs) to configure building your own examples against PLplot. Alan __________________________ Alan W. Irwin Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); the Time Ephemerides project (timeephem.sf.net); PLplot scientific plotting software package (plplot.sf.net); the libLASi project (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __________________________ Linux-powered Science __________________________ |
From: Arnaud D. <ada...@ap...> - 2015-01-21 22:09:35
|
Alan, thank you for the detailed answer. Cmake is what i'm trying to use. As i understand this won't be easy and i fear that there will be deployment difficulties on customer systems. My goal would be to distribute an executable of the final software along with the source so that they can just run it without any installation. Will in the end PLplot allow for this or is it the wrong library? Thank you. On 1/21/2015 8:56 PM, Alan W. Irwin wrote: > On 2015-01-21 18:26+0100 Arnaud Darmont wrote: > >> Hi all, >> >> i'm just new to PLplot and today i successfully managed to install >> MinGW, CMake and all the related stuff and then i compiled the DLL and A >> files. It was not very easy but it seems that i got all files in the >> end. >> >> In a next step i tried to compile an example. I moved all .h files, .a >> files, .dll files and the example's .c file into a test directory and >> successfully compiled using "gcc -otest.exe lib...dll.a etc (the list of >> all .a files)". >> >> When i run the file i get the error message that it couldn't find the >> driver's directory. >> >> Note that i have built PLplot without the examples as i need to build my >> own example separately in either Embarcadero C++ builder, devCpp or >> MinGW. >> >> I don't think i have any build issues, just need to find out what to do >> with the drivers, where to locate them and so on. I have tried to move >> the driver's directory into my projects directory without success. I >> actually don't think that those files are the drivers. Should the >> drivers be built separately? if yes, what is the cmake command to build >> the drivers? Where will "make install" locate the drivers after i make >> them with gcc. Why are they not compiler together with PLplot? >> >> I have found a discussion about the same issue on the mailing list but >> the discussion ends without providing an answer. > > As you have discovered, attempting to collect everything you need can > be error-prone so instead use the cmake option > -DCMAKE_INSTALL_PREFIX=<wherever you want the install prefix to be>, > and after cmake is run, then run the command "make install" to collect > all necessary PLplot files (including libraries, drivers, etc.) in an > organized way in the install tree with the prefix location you have > specified. Then change directories to > $prefix/share/plplot5$version/examples (where $prefix is the above > install prefix and $version refers to whatever version of plplot you > have installed. In that location you will find two build systems for > the installed examples which should give you some ideas about the best > way to build your own applications against the PLplot libraries. > > 1. The traditional build system for the installed examples is based on > make + pkg-config, and you can find out more about it by looking into > the Makefile files in that installed examples directory and > subdirectories. This build approach may or may not be suitable for > your needs since it all depends on whether you have access to > pkg-config which on Windows platforms is available for Cygwin, and the > combination of MinGW-w64 + MSYS2, but not for MinGW alone (a quite > different and much older project than MinGW-w64) or for the > combination of MinGW + MSYS (where MSYS is a quite different and older > project than MSYS2). To find out more about the MSYS2 possibility > (which automatically includes MinGW-w64), take a look at > http://sourceforge.net/p/msys2/wiki/Home/. > > 2. The CMake-based build system for the installed examples is > implemented by the CMakeLists.txt file you will see in the installed > examples directory and files it refers to there. The CMake-based > approach is the one I recommend for you if you have some basic > knowledge of CMake logic (or are willing to spend a day or so learning > such basic knowledge) since it should work on any platform. > > To see this CMake-based build system in action you should (important! > since this leaves the installed examples tree in a desireable pristine > condition) create an intially empty build directory, change to that > directory, (important!) put $install/bin on your PATH environment > variable, then execute > > cmake $install/share/plplot5$version/examples > > to configure the build of the installed examples. Afterwards, you can > build all examples by running, e.g., > > make VERBOSE=1 > > and you can also run some of those built examples using, e.g., > > c/x00c -dev psc -o test.psc > > to confirm, for example, that the drivers are being found properly. > > At this stage, you have two further choices. You could simply cut > and paste from the make VERBOSE=1 results to figure out how to > build your own code against PLplot or you could adapt the existing > CMake-based build system for the installed examples (mostly by getting > rid of large parts of it that are not relevant to your needs) to > configure building your own examples against PLplot. > > Alan > > __________________________ > Alan W. Irwin > > Astronomical research affiliation with Department of Physics and > Astronomy, > University of Victoria (astrowww.phys.uvic.ca). > > Programming affiliations with the FreeEOS equation-of-state > implementation for stellar interiors (freeeos.sf.net); the Time > Ephemerides project (timeephem.sf.net); PLplot scientific plotting > software package (plplot.sf.net); the libLASi project > (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); > and the Linux Brochure Project (lbproject.sf.net). > __________________________ > > Linux-powered Science > __________________________ > > -- APHESA Arnaud Darmont CEO Direct Tel: +32 (0)4 365 06 80 Mobile: +32 (0)472 643 620 General Tel: +32 (0)4 366 18 70 Fax: +32 (0)4 366 08 10 Rue de Lorcé, 39 B-4920 HARZE BELGIUM www.aphesa.com Twitter: @Aphesa |
From: Arjen M. <Arj...@de...> - 2015-01-23 15:13:29
|
Hi Arnaud, Just chiming in on this (just returned from a short business trip) - I am sure Alan can and will help you out with this. Otherwise I will do my best to fill in the details for the MinGW platform. Regards, Arjen > -----Original Message----- > From: Arnaud Darmont [mailto:ada...@ap...] > Sent: Wednesday, January 21, 2015 11:10 PM > To: Alan W. Irwin > Cc: plp...@li... > Subject: Re: [Plplot-general] Trying to build examples > > Alan, > > thank you for the detailed answer. Cmake is what i'm trying to use. > > As i understand this won't be easy and i fear that there will be deployment difficulties > on customer systems. My goal would be to distribute an executable of the final > software along with the source so that they can just run it without any installation. > Will in the end PLplot allow for this or is it the wrong library? > > Thank you. > > > > > On 1/21/2015 8:56 PM, Alan W. Irwin wrote: > > On 2015-01-21 18:26+0100 Arnaud Darmont wrote: > > > >> Hi all, > >> > >> i'm just new to PLplot and today i successfully managed to install > >> MinGW, CMake and all the related stuff and then i compiled the DLL > >> and A files. It was not very easy but it seems that i got all files > >> in the end. > >> > >> In a next step i tried to compile an example. I moved all .h files, > >> .a files, .dll files and the example's .c file into a test directory > >> and successfully compiled using "gcc -otest.exe lib...dll.a etc (the > >> list of all .a files)". > >> > >> When i run the file i get the error message that it couldn't find the > >> driver's directory. > >> > >> Note that i have built PLplot without the examples as i need to build > >> my own example separately in either Embarcadero C++ builder, devCpp > >> or MinGW. > >> > >> I don't think i have any build issues, just need to find out what to > >> do with the drivers, where to locate them and so on. I have tried to > >> move the driver's directory into my projects directory without > >> success. I actually don't think that those files are the drivers. > >> Should the drivers be built separately? if yes, what is the cmake > >> command to build the drivers? Where will "make install" locate the > >> drivers after i make them with gcc. Why are they not compiler together with > PLplot? > >> > >> I have found a discussion about the same issue on the mailing list > >> but the discussion ends without providing an answer. > > > > As you have discovered, attempting to collect everything you need can > > be error-prone so instead use the cmake option > > -DCMAKE_INSTALL_PREFIX=<wherever you want the install prefix to be>, > > and after cmake is run, then run the command "make install" to collect > > all necessary PLplot files (including libraries, drivers, etc.) in an > > organized way in the install tree with the prefix location you have > > specified. Then change directories to > > $prefix/share/plplot5$version/examples (where $prefix is the above > > install prefix and $version refers to whatever version of plplot you > > have installed. In that location you will find two build systems for > > the installed examples which should give you some ideas about the best > > way to build your own applications against the PLplot libraries. > > > > 1. The traditional build system for the installed examples is based on > > make + pkg-config, and you can find out more about it by looking into > > the Makefile files in that installed examples directory and > > subdirectories. This build approach may or may not be suitable for > > your needs since it all depends on whether you have access to > > pkg-config which on Windows platforms is available for Cygwin, and the > > combination of MinGW-w64 + MSYS2, but not for MinGW alone (a quite > > different and much older project than MinGW-w64) or for the > > combination of MinGW + MSYS (where MSYS is a quite different and older > > project than MSYS2). To find out more about the MSYS2 possibility > > (which automatically includes MinGW-w64), take a look at > > http://sourceforge.net/p/msys2/wiki/Home/. > > > > 2. The CMake-based build system for the installed examples is > > implemented by the CMakeLists.txt file you will see in the installed > > examples directory and files it refers to there. The CMake-based > > approach is the one I recommend for you if you have some basic > > knowledge of CMake logic (or are willing to spend a day or so learning > > such basic knowledge) since it should work on any platform. > > > > To see this CMake-based build system in action you should (important! > > since this leaves the installed examples tree in a desireable pristine > > condition) create an intially empty build directory, change to that > > directory, (important!) put $install/bin on your PATH environment > > variable, then execute > > > > cmake $install/share/plplot5$version/examples > > > > to configure the build of the installed examples. Afterwards, you can > > build all examples by running, e.g., > > > > make VERBOSE=1 > > > > and you can also run some of those built examples using, e.g., > > > > c/x00c -dev psc -o test.psc > > > > to confirm, for example, that the drivers are being found properly. > > > > At this stage, you have two further choices. You could simply cut and > > paste from the make VERBOSE=1 results to figure out how to build your > > own code against PLplot or you could adapt the existing CMake-based > > build system for the installed examples (mostly by getting rid of > > large parts of it that are not relevant to your needs) to configure > > building your own examples against PLplot. > > > > Alan > > > > __________________________ > > Alan W. Irwin > > > > Astronomical research affiliation with Department of Physics and > > Astronomy, University of Victoria (astrowww.phys.uvic.ca). > > > > Programming affiliations with the FreeEOS equation-of-state > > implementation for stellar interiors (freeeos.sf.net); the Time > > Ephemerides project (timeephem.sf.net); PLplot scientific plotting > > software package (plplot.sf.net); the libLASi project > > (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); > > and the Linux Brochure Project (lbproject.sf.net). > > __________________________ > > > > Linux-powered Science > > __________________________ > > > > > > -- > APHESA > Arnaud Darmont > CEO > > Direct Tel: +32 (0)4 365 06 80 > Mobile: +32 (0)472 643 620 > General Tel: +32 (0)4 366 18 70 > Fax: +32 (0)4 366 08 10 > > Rue de Lorcé, 39 > B-4920 HARZE > BELGIUM > > www.aphesa.com > > Twitter: @Aphesa > > > ------------------------------------------------------------------------------ > New Year. New Location. New Benefits. New Data Center in Ashburn, VA. > GigeNET is offering a free month of service with a new server in Ashburn. > Choose from 2 high performing configs, both with 100TB of bandwidth. > Higher redundancy.Lower latency.Increased capacity.Completely compliant. > http://p.sf.net/sfu/gigenet > _______________________________________________ > Plplot-general mailing list > Plp...@li... > https://lists.sourceforge.net/lists/listinfo/plplot-general DISCLAIMER: This message is intended exclusively for the addressee(s) and may contain confidential and privileged information. If you are not the intended recipient please notify the sender immediately and destroy this message. Unauthorized use, disclosure or copying of this message is strictly prohibited. The foundation 'Stichting Deltares', which has its seat at Delft, The Netherlands, Commercial Registration Number 41146461, is not liable in any way whatsoever for consequences and/or damages resulting from the improper, incomplete and untimely dispatch, receipt and/or content of this e-mail. |
From: John B. <jrb...@co...> - 2015-01-26 00:58:03
|
Hi Arjen and Alan, After achieving apparent success several days ago compiling and linking my application code under plplot-5.10.0, for some reason things ceased to work. The make process could no longer find the required libraries. So I went to examples/f95 and imitated (I think) the makefile I found there (Makefile.examples). Here is the resulting makefile I am attempting to use: F95 = /usr/bin/gfortran.exe FFLAGS = -fdefault-real-8 -O3 PKG_CONFIG_ENV = PKG_CONFIG_PATH="/home/johnrb/plplot-5.10.0/build_dir/lib/pkgconfig" RPATHCMD = -Wl,-rpath -Wl,/home/johnrb/plplot-5.10.0/build_dir/lib sphplt : sphplt.o graphx.o $(F95) $(FFLAGS) $(RPATHCMD) -o sphplt \ `$(PKG_CONFIG_ENV) pkg-config --cflags --libs plplotd-f95` \ sphplt.o graphx.o -lplplotd -lplplotf95d -lplplotf95cd Here is what I get when I do the make: $ make -f makesph /usr/bin/gfortran.exe -fdefault-real-8 -O3 -Wl,-rpath -Wl,/home/johnrb/plplot-5.10.0/build_dir/lib -o sphplt \ `PKG_CONFIG_PATH="/home/johnrb/plplot-5.10.0/build_dir/lib/pkgconfig" pkg-config --cflags --libs plplotd-f95` \ sphplt.o graphx.o -lplplotd -lplplotf95d -lplplotf95cd /usr/lib/gcc/x86_64-pc-cygwin/4.8.3/../../../../x86_64-pc-cygwin/bin/ld: cannot find -lplplotf95d-11.0.0 /usr/lib/gcc/x86_64-pc-cygwin/4.8.3/../../../../x86_64-pc-cygwin/bin/ld: cannot find -lplplotf95cd-11.0.0 collect2: error: ld returned 1 exit status makesph:8: recipe for target 'sphplt' failed make: *** [sphplt] Error 1 Any ideas as to what I am doing wrong? Thanks for any help you can provide. John P.S. Here is the pkgconfig/plplotd-f95.pc file: libdir=/home/johnrb/plplot-5.10.0/build_dir/bin includedir=/home/johnrb/plplot-5.10.0/build_dir/include/plplot drvdir=/home/johnrb/plplot-5.10.0/build_dir/lib/plplot5.10.0/driversd Name: PLplot F95 Description: Scientific plotting library (F95 bindings, double precision) Requires: plplotd Version: 5.10.0 Libs: -L${libdir} -lplplotf95d-11.0.0 -lplplotf95cd-11.0.0 Cflags: -I${includedir} -I/home/johnrb/plplot-5.10.0/build_dir/lib/fortran/modules/plplot Question: Why is libdir set to /bin and not /lib? /bin does not have libplplotf95d-11.0.0 while /lib does. |
From: Arjen M. <Arj...@de...> - 2015-01-26 08:01:47
|
Hi John, I will have a closer look at this. Regards, Arjen From: John Baumgardner [mailto:jrb...@co...] Sent: Monday, January 26, 2015 1:58 AM To: Arjen Markus; Alan W. Irwin Cc: plp...@li... Subject: [Plplot-general] How Do I Link Correctly To the Libraries Under 5.10.0? Hi Arjen and Alan, After achieving apparent success several days ago compiling and linking my application code under plplot-5.10.0, for some reason things ceased to work. The make process could no longer find the required libraries. So I went to examples/f95 and imitated (I think) the makefile I found there (Makefile.examples). Here is the resulting makefile I am attempting to use: F95 = /usr/bin/gfortran.exe FFLAGS = -fdefault-real-8 -O3 PKG_CONFIG_ENV = PKG_CONFIG_PATH="/home/johnrb/plplot-5.10.0/build_dir/lib/pkgconfig" RPATHCMD = -Wl,-rpath -Wl,/home/johnrb/plplot-5.10.0/build_dir/lib sphplt : sphplt.o graphx.o $(F95) $(FFLAGS) $(RPATHCMD) -o sphplt \ `$(PKG_CONFIG_ENV) pkg-config --cflags --libs plplotd-f95` \ sphplt.o graphx.o -lplplotd -lplplotf95d -lplplotf95cd Here is what I get when I do the make: $ make -f makesph /usr/bin/gfortran.exe -fdefault-real-8 -O3 -Wl,-rpath -Wl,/home/johnrb/plplot-5.10.0/build_dir/lib -o sphplt \ `PKG_CONFIG_PATH="/home/johnrb/plplot-5.10.0/build_dir/lib/pkgconfig" pkg-config --cflags --libs plplotd-f95` \ sphplt.o graphx.o -lplplotd -lplplotf95d -lplplotf95cd /usr/lib/gcc/x86_64-pc-cygwin/4.8.3/../../../../x86_64-pc-cygwin/bin/ld: cannot find -lplplotf95d-11.0.0 /usr/lib/gcc/x86_64-pc-cygwin/4.8.3/../../../../x86_64-pc-cygwin/bin/ld: cannot find -lplplotf95cd-11.0.0 collect2: error: ld returned 1 exit status makesph:8: recipe for target 'sphplt' failed make: *** [sphplt] Error 1 Any ideas as to what I am doing wrong? Thanks for any help you can provide. John P.S. Here is the pkgconfig/plplotd-f95.pc file: libdir=/home/johnrb/plplot-5.10.0/build_dir/bin includedir=/home/johnrb/plplot-5.10.0/build_dir/include/plplot drvdir=/home/johnrb/plplot-5.10.0/build_dir/lib/plplot5.10.0/driversd Name: PLplot F95 Description: Scientific plotting library (F95 bindings, double precision) Requires: plplotd Version: 5.10.0 Libs: -L${libdir} -lplplotf95d-11.0.0 -lplplotf95cd-11.0.0 Cflags: -I${includedir} -I/home/johnrb/plplot-5.10.0/build_dir/lib/fortran/modules/plplot Question: Why is libdir set to /bin and not /lib? /bin does not have libplplotf95d-11.0.0 while /lib does. DISCLAIMER: This message is intended exclusively for the addressee(s) and may contain confidential and privileged information. If you are not the intended recipient please notify the sender immediately and destroy this message. Unauthorized use, disclosure or copying of this message is strictly prohibited. The foundation 'Stichting Deltares', which has its seat at Delft, The Netherlands, Commercial Registration Number 41146461, is not liable in any way whatsoever for consequences and/or damages resulting from the improper, incomplete and untimely dispatch, receipt and/or content of this e-mail. |
From: John B. <jrb...@co...> - 2015-01-30 23:36:56
|
Hi Arjen, I have still had no success in getting my application to work linked to plplot-5.10.0 under Cygwin. Here is what I am seeing. Things apparently compile and link okay: $ make sphplt gfortran -fdefault-real-8 -O3 -fdefault-real-8 -O3 -I/usr/local/plplot/include -L/usr/local/plplot/lib -o sphplt sphplt.o graphx.o \ -lplplotd -lplplotf95d -lplplotf95cd But then when I execute I get the following error: $ sphplt /home/johnrb/terra0314/sphplt.exe: error while loading shared libraries: cygplplotf95d-11.dll: cannot open shared object file: No such file or directory Might you have any idea what I am doing wrong here? Thanks for any help you can provide. John At 12:01 AM 1/26/2015, Arjen Markus wrote: >Hi John, > >I will have a closer look at this. > >Regards, >Arjen > >From: John Baumgardner [mailto:jrb...@co...] >Sent: Monday, January 26, 2015 1:58 AM >To: Arjen Markus; Alan W. Irwin >Cc: plp...@li... >Subject: [Plplot-general] How Do I Link Correctly To the Libraries >Under 5.10.0? > >Hi Arjen and Alan, > > After achieving apparent success several days ago compiling and > linking my application code under plplot-5.10.0, for some reason > things ceased to work. The make process could no longer find the > required libraries. So I went to examples/f95 and imitated (I > think) the makefile I found there (Makefile.examples). Here is the > resulting makefile I am attempting to use: > >F95 = /usr/bin/gfortran.exe >FFLAGS = -fdefault-real-8 -O3 >PKG_CONFIG_ENV = >PKG_CONFIG_PATH="/home/johnrb/plplot-5.10.0/build_dir/lib/pkgconfig" >RPATHCMD = -Wl,-rpath -Wl,/home/johnrb/plplot-5.10.0/build_dir/lib > >sphplt : sphplt.o graphx.o > $(F95) $(FFLAGS) $(RPATHCMD) -o sphplt \ > `$(PKG_CONFIG_ENV) pkg-config --cflags --libs plplotd-f95` \ > sphplt.o graphx.o -lplplotd -lplplotf95d -lplplotf95cd > >Here is what I get when I do the make: > >$ make -f makesph >/usr/bin/gfortran.exe -fdefault-real-8 -O3 -Wl,-rpath >-Wl,/home/johnrb/plplot-5.10.0/build_dir/lib -o sphplt \ >`PKG_CONFIG_PATH="/home/johnrb/plplot-5.10.0/build_dir/lib/pkgconfig" >pkg-config --cflags --libs plplotd-f95` \ > sphplt.o graphx.o -lplplotd -lplplotf95d -lplplotf95cd >/usr/lib/gcc/x86_64-pc-cygwin/4.8.3/../../../../x86_64-pc-cygwin/bin/ld: >cannot find -lplplotf95d-11.0.0 >/usr/lib/gcc/x86_64-pc-cygwin/4.8.3/../../../../x86_64-pc-cygwin/bin/ld: >cannot find -lplplotf95cd-11.0.0 >collect2: error: ld returned 1 exit status >makesph:8: recipe for target 'sphplt' failed >make: *** [sphplt] Error 1 > > Any ideas as to what I am doing wrong? Thanks for any help you > can provide. > >John > >P.S. Here is the pkgconfig/plplotd-f95.pc file: > >libdir=/home/johnrb/plplot-5.10.0/build_dir/bin >includedir=/home/johnrb/plplot-5.10.0/build_dir/include/plplot >drvdir=/home/johnrb/plplot-5.10.0/build_dir/lib/plplot5.10.0/driversd > >Name: PLplot F95 >Description: Scientific plotting library (F95 bindings, double precision) >Requires: plplotd >Version: 5.10.0 >Libs: -L${libdir} -lplplotf95d-11.0.0 -lplplotf95cd-11.0.0 >Cflags: -I${includedir} >-I/home/johnrb/plplot-5.10.0/build_dir/lib/fortran/modules/plplot > >Question: Why is libdir set to /bin and not /lib? /bin does not >have libplplotf95d-11.0.0 while /lib does. >DISCLAIMER: This message is intended exclusively for the >addressee(s) and may contain confidential and privileged >information. If you are not the intended recipient please notify the >sender immediately and destroy this message. Unauthorized use, >disclosure or copying of this message is strictly prohibited. The >foundation 'Stichting Deltares', which has its seat at Delft, The >Netherlands, Commercial Registration Number 41146461, is not liable >in any way whatsoever for consequences and/or damages resulting from >the improper, incomplete and untimely dispatch, receipt and/or >content of this e-mail. |
From: Alan W. I. <ir...@be...> - 2015-01-22 09:12:59
|
On 2015-01-21 23:09+0100 Arnaud Darmont wrote: > Alan, > > thank you for the detailed answer. Cmake is what i'm trying to use. > > As i understand this won't be easy and i fear that there will be deployment > difficulties on customer systems. My goal would be to distribute an > executable of the final software along with the source so that they can just > run it without any installation. Will in the end PLplot allow for this or is > it the wrong library? I think your first priority should be to get the PLplot build to work on either Cygwin or MinGW-w64/MSYS2. Both of those platforms should provide a full suite of external libraries that PLplot depends upon to provide complete functionality. Those external libraries include libqhull and shapelib (both needed by the core PLplot library for full functionality), libharu (needed for the pdf device driver), the wxwidgets library (needed by the PLplot wxwidgets device driver), Qt5 (needed for the qt device driver), and the Pango/Cairo subset of GTK+ (needed for the cairo device driver). Note, that qt and cairo are currently our best device drivers, and one of our developers is working hard to bring our wxwidgets device driver up to that same level of quality. I would avoid MinGW/MSYS because it supplies few libraries and therefore your PLplot build there will generate an extremely lite version of PLplot that doesn't have the capabilities (e.g., none of the wxwidgets, qt, or cairo device drivers) provided by the equivalent PLplot build on those other two Windows platforms. If you like the PLplot capabilities you find on either Cygwin or MinGW-w64/MSYS2, then I believe the answer to the deployment issue you brought up above is to build your software package against a static version of PLplot (which should be trivial to arrange) which in turn has been built against static versions of the external libraries (non-trivial to arrange). If you can do that, it virtually solves your deployment issues since you don't have to worry about version incompatibilities of ABI incompatibility issues with shared external libraries your users may or may not have installed, i.e., no dll-hell issues. My understanding is that CMake does have a method to force linking with static external libraries if they are available rather than external shared libraries (its default preference). But I have never actually tried that myself, and you would likely have to ask on the CMake list or google for how to do it. In sum, my advice to solve the deployment issue is to abandon MinGW/MSYS (due to lack of external libraries) and try either/both MinGW-w64/MSYS2 or else Cygwin. If satisfied with one of those verify it has static versions of the necessary external libraries that you can install. Then figure out how to convince CMake to preferentially use static libraries for linking, and build a static version of PLplot against those external libraries. Then statically link your software with that static PLplot for your deployment. Alan __________________________ Alan W. Irwin Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); the Time Ephemerides project (timeephem.sf.net); PLplot scientific plotting software package (plplot.sf.net); the libLASi project (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __________________________ Linux-powered Science __________________________ |
From: Arnaud D. <ada...@ap...> - 2015-01-22 09:35:52
|
On 1/22/2015 10:12 AM, Alan W. Irwin wrote: > On 2015-01-21 23:09+0100 Arnaud Darmont wrote: > >> Alan, >> >> thank you for the detailed answer. Cmake is what i'm trying to use. >> >> As i understand this won't be easy and i fear that there will be >> deployment difficulties on customer systems. My goal would be to >> distribute an executable of the final software along with the source >> so that they can just run it without any installation. Will in the >> end PLplot allow for this or is it the wrong library? > > I think your first priority should be to get the PLplot build to work > on either Cygwin or MinGW-w64/MSYS2. Both of those platforms should > provide a full suite of external libraries that PLplot depends upon to > provide complete functionality. We are not going to deploy anything like this on our customer's machines. It has to run in a windows install without any specific external requirements. > Those external libraries include > libqhull and shapelib (both needed by the core PLplot library for full > functionality), libharu (needed for the pdf device driver), the > wxwidgets library (needed by the PLplot wxwidgets device driver), Qt5 > (needed for the qt device driver), and the Pango/Cairo subset of GTK+ > (needed for the cairo device driver). Note, that qt and cairo are > currently our best device drivers, and one of our developers is > working hard to bring our wxwidgets device driver up to that same > level of quality. I would avoid MinGW/MSYS because it supplies few > libraries and therefore your PLplot build there will generate an > extremely lite version of PLplot that doesn't have the capabilities > (e.g., none of the wxwidgets, qt, or cairo device drivers) provided by > the equivalent PLplot build on those other two Windows platforms. > > If you like the PLplot capabilities you find on either Cygwin or > MinGW-w64/MSYS2, then I believe the answer to the deployment issue you > brought up above is to build your software package against a static > version of PLplot (which should be trivial to arrange) which in turn > has been built against static versions of the external libraries > (non-trivial to arrange). If you can do that, it virtually solves your > deployment issues since you don't have to worry about version > incompatibilities of ABI incompatibility issues with shared external > libraries your users may or may not have installed, i.e., no dll-hell > issues. > > My understanding is that CMake does have a method to force linking > with static external libraries if they are available rather than > external shared libraries (its default preference). But I have never > actually tried that myself, and you would likely have to ask on the > CMake list or google for how to do it. > > In sum, my advice to solve the deployment issue is to abandon > MinGW/MSYS (due to lack of external libraries) and try either/both > MinGW-w64/MSYS2 or else Cygwin. If satisfied with one of those verify > it has static versions of the necessary external libraries that you > can install. Then figure out how to convince CMake to preferentially > use static libraries for linking, and build a static version of PLplot > against those external libraries. Then statically link your software > with > that static PLplot for your deployment. > I will look for another plotting library. It will be less work. > Alan > __________________________ > Alan W. Irwin > > Astronomical research affiliation with Department of Physics and > Astronomy, > University of Victoria (astrowww.phys.uvic.ca). > > Programming affiliations with the FreeEOS equation-of-state > implementation for stellar interiors (freeeos.sf.net); the Time > Ephemerides project (timeephem.sf.net); PLplot scientific plotting > software package (plplot.sf.net); the libLASi project > (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); > and the Linux Brochure Project (lbproject.sf.net). > __________________________ > > Linux-powered Science > __________________________ > > -- APHESA Arnaud Darmont CEO Direct Tel: +32 (0)4 365 06 80 Mobile: +32 (0)472 643 620 General Tel: +32 (0)4 366 18 70 Fax: +32 (0)4 366 08 10 Rue de Lorcé, 39 B-4920 HARZE BELGIUM www.aphesa.com Twitter: @Aphesa |
From: Alan W. I. <ir...@be...> - 2015-01-22 11:53:15
|
On 2015-01-22 10:35+0100 Arnaud Darmont wrote: > We are not going to deploy anything like this on our customer's machines. It has to run in a windows install without any specific external requirements. Umm. The whole point of static linking is to avoid external requirements. > I will look for another plotting library. It will be less work. It sounds like you have made up your mind so good luck with that. For others reading this thread now or in the future, it is not quite that simple. I think every good plotting package worth its salt has external libraries it depends on so the static linking method I described earlier in this thread must be used to avoid deployment issues. So Arnaud's real complaint against PLplot is he would have to figure out how to statically link PLplot against static external libraries with some of that work requiring CMake investigation. And that is certainly a valid complaint. Therefore, it would likely be a good idea for us to do at least part of that work ourselves in the future, i.e., do the experiments with CMake to figure out how to compel use of static external libraries, and publish a script and/or put clear directions on our Wiki so someone like Arnaud could just routinely follow those directions and be done with no further investigation required on his part. Another alternative would be for us to distribute a binary static version of PLplot linked in the manner I have described on our own. But I don't advocate that exact alternative because distributors of binary versions of other's free software have certain responsibilities (i.e., to publish [not just link to] exact source code for other's free software that you have included in the binary distribution). That's certainly doable (after all every official binary distribution of free software does that), but it takes work to package up all that source code for Qt5, Pango/Cairo, wxwidgets, etc. Instead, what we should do is figure out a way to package up our software (both in static and shared form) as an official part of the Cygwin distribution and the MinGW-w64/MSYS distribution. Such official binary distributions automatically satisfy the source code distribution requirement I have mentioned. So in sum, with a lot of additional work on our part we would be in a position to tell somone with Arnaud's deployment needs to follow the Wiki directions, run the equivalent script, or link to the static version of PLplot in one of those distributions. Alan __________________________ Alan W. Irwin Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); the Time Ephemerides project (timeephem.sf.net); PLplot scientific plotting software package (plplot.sf.net); the libLASi project (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __________________________ Linux-powered Science __________________________ |
From: Schwartz, S. J <s.s...@im...> - 2015-01-22 12:39:48
|
Dear All, Alan W. Irwin wrote on 2015-01-22: ---------------- > On 2015-01-22 10:35+0100 Arnaud Darmont wrote: > >> We are not going to deploy anything like this on our customer's > machines. It has to run in a windows install without any specific > external requirements. Somewhere along the execution path all code must talk to the operating system. I don't think it's possible to protect your code completely from its environment. > For others reading this thread now or in the future, it is not quite that simple. > I think every good plotting package worth its salt has external > libraries it depends on so the static linking method I described > earlier in this thread must be used to avoid deployment issues. So > Arnaud's real complaint against PLplot is he would have to figure out > how to statically link PLplot against static external libraries with > some of that work requiring CMake investigation. And that is certainly a valid complaint. Just a note here that we distribute dynamically linked Windows binaries of our software, which uses plplot dll's for the graphics. I wonder, Alan, if you scared Arnaud by producing a long list of external dependencies (wxwidgets, qt, cairo, shapelib, etc., etc.) required to produce what you regard as a full plplot distribution. We take the minimalist approach. We ship a plplot with only ONE set of drivers, in our case the qt ones because the rest of our application is actually built using qt. But I could imagine building only, say, the wingcc and postscript drivers or whatever, depending on the functionality and quality required for the application. I realise that this is perhaps heresy to the core plplot development team, whom I applaud for an excellent software suite and active support/development, but not all applications have Our distribution is a simple zip file that unpacks into a hierarchy that contains a lib directory. Into that directory we drop the plplot dll's, the Qt ones, and any others that are not part of the Windows system. We don't use a Windows package installer, but all that would do would edit the batch script to point to the right directory and, I suppose, register the application with the windows registry. I have used Dependency Walker to interrogate our executable and hence to identify those libraries that we need to include: they are the ones which aren't built specifically by us and aren't found in, e.g. c:\windows\system32. There is a certain amount of manual debugging here to get it right, but I think this is not restricted to the needs of plplot and is part and parcel of a binary distribution. Actually, I've been impressed by how well this works under windows (xp, 7, 8) by comparison with difficulties for even minor changes to a particular flavour or linux or macos. We don't automate very much here. We don't use CMake to build plplot, but instead build the the plplot core and our own qt driver via an old-fashioned but very transparent build script that builds the rest of our application. Again if you build a minimalist version and if you are shipping a binary, choose whatever approach is most consistent with the rest of your methodology. We also don't follow every plplot upgrade, saving our tiny manpower resource to work on other functionality of our software. At present, our Windows distribution is built with a relatively old (4.7.2) mingw/MSYS toolchain for which a Qt 4.8 binary build is available, but I have it on my radar to move to MSYS2 and Qt5. I have made similar points in previous postings on this list, namely the desirability of providing some support and examples to those who wish to use plplot but are more familiar with other build systems - could be anything from gnu configure to qmake to a handmade build shell script to a one line compile command. A simple plplot "hello world" example with instructions on how to write the one-line gcc compile command and what needs to be in the user's PATH would demonstrate some flexibility that some people might find appealing. Best wishes Steve -------------------------------------------------------------------- Steven J Schwartz Phone: +44 (0)207 594 7660 Professor of Space Physics Fax: +44 (0)207 594 7772 Director, Imperial Space Lab www.imperial.ac.uk/spacelab The Blackett Laboratory Email: s.s...@im... Imperial College London Office: Huxley 6M67A London SW7 2AZ, UK Web: www.sp.ph.ic.ac.uk/~sjs -------------------------------------------------------------------- |
From: Alan W. I. <ir...@be...> - 2015-01-22 19:25:05
|
On 2015-01-22 12:39-0000 Schwartz, Steven J wrote: > Dear All, > > Alan W. Irwin wrote on 2015-01-22: > ---------------- > >> On 2015-01-22 10:35+0100 Arnaud Darmont wrote: >> >>> We are not going to deploy anything like this on our customer's >> machines. It has to run in a windows install without any specific >> external requirements. > > Somewhere along the execution path all code must talk to the operating system. I don't think it's possible to protect your code completely from its environment. > >> For others reading this thread now or in the future, it is not quite that simple. >> I think every good plotting package worth its salt has external >> libraries it depends on so the static linking method I described >> earlier in this thread must be used to avoid deployment issues. So >> Arnaud's real complaint against PLplot is he would have to figure out >> how to statically link PLplot against static external libraries with >> some of that work requiring CMake investigation. And that is certainly a valid complaint. > > Just a note here that we distribute dynamically linked Windows binaries of our software, which uses plplot dll's for the graphics. I wonder, Alan, if you scared Arnaud by producing a long list of external dependencies (wxwidgets, qt, cairo, shapelib, etc., etc.) required to produce what you regard as a full plplot distribution. We take the minimalist approach. We ship a plplot with only ONE set of drivers, in our case the qt ones because the rest of our application is actually built using qt. But I could imagine building only, say, the wingcc and postscript drivers or whatever, depending on the functionality and quality required for the application. I realise that this is perhaps heresy to the core plplot development team, whom I applaud for an excellent software suite and active support/development, but not all applications have > > Our distribution is a simple zip file that unpacks into a hierarchy that contains a lib directory. Into that directory we drop the plplot dll's, the Qt ones, and any others that are not part of the Windows system. We don't use a Windows package installer, but all that would do would edit the batch script to point to the right directory and, I suppose, register the application with the windows registry. > > I have used Dependency Walker to interrogate our executable and hence to identify those libraries that we need to include: they are the ones which aren't built specifically by us and aren't found in, e.g. c:\windows\system32. There is a certain amount of manual debugging here to get it right, but I think this is not restricted to the needs of plplot and is part and parcel of a binary distribution. Actually, I've been impressed by how well this works under windows (xp, 7, 8) by comparison with difficulties for even minor changes to a particular flavour or linux or macos. > > We don't automate very much here. We don't use CMake to build plplot, but instead build the the plplot core and our own qt driver via an old-fashioned but very transparent build script that builds the rest of our application. Again if you build a minimalist version and if you are shipping a binary, choose whatever approach is most consistent with the rest of your methodology. We also don't follow every plplot upgrade, saving our tiny manpower resource to work on other functionality of our software. > > At present, our Windows distribution is built with a relatively old (4.7.2) mingw/MSYS toolchain for which a Qt 4.8 binary build is available, but I have it on my radar to move to MSYS2 and Qt5. > > I have made similar points in previous postings on this list, namely the desirability of providing some support and examples to those who wish to use plplot but are more familiar with other build systems - could be anything from gnu configure to qmake to a handmade build shell script to a one line compile command. A simple plplot "hello world" example with instructions on how to write the one-line gcc compile command and what needs to be in the user's PATH would demonstrate some flexibility that some people might find appealing. Good post, Steve! I certainly agree that someone with Arnaud's distribution needs should evaluate PLplot to figure out the minimalist components of it that they need (since disabling unused components makes their distribution life much easier). Such component disabling is well supported by our current build system, but we likely need to document that better in our wiki. In response to your last point, we do provide two systems (make+pkg-config and CMake) for building our examples. They both do an awful lot now that is important (such as implementing tests of the results), but that complexity is likely confusing to the first-time user so we also need to document in our wiki a minimalist example or two of how to use both those approaches to build an app that links to PLplot. Alan __________________________ Alan W. Irwin Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); the Time Ephemerides project (timeephem.sf.net); PLplot scientific plotting software package (plplot.sf.net); the libLASi project (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __________________________ Linux-powered Science __________________________ |
From: Arjen M. <Arj...@de...> - 2015-01-26 08:11:54
|
Hi Alan, Steven, > > Good post, Steve! I certainly agree that someone with Arnaud's distribution needs > should evaluate PLplot to figure out the minimalist components of it that they need > (since disabling unused components makes their distribution life much easier). Such > component disabling is well supported by our current build system, but we likely > need to document that better in our wiki. In response to your last point, we do > provide two systems (make+pkg-config and CMake) for building our examples. They > both do an awful lot now that is important (such as implementing tests of the results), > but that complexity is likely confusing to the first-time user so we also need to > document in our wiki a minimalist example or two of how to use both those > approaches to build an app that links to PLplot. > I did an experiment with a threaded example (to try and reproduce a problem Sergei Naumov reported) and for building that I simply used a command-line like: gcc -c example.c -I...all the appropriate include directories gcc -o example example.o -L.../dll -lplplot -lcsirocsa -lqsastime under Cygwin. It worked splendidly, with the exception that it does not reproduce the faulty behaviour, but that is a detail. The reason I bring this up is that we may need the machinery of CMake to build the entire library with its - mainly optional - external components and various language bindings, but once that is done, building a program that uses PLplot is surprisingly simple. The documentation should include a section on this - we focus so much on getting PLplot build that we forget about the next step :). As for having to rely on external libraries: on Windows the run-time libraries for any program may cause some hassle (suppressing a sigh) - not everything can be done statically! Regards, Arjen DISCLAIMER: This message is intended exclusively for the addressee(s) and may contain confidential and privileged information. If you are not the intended recipient please notify the sender immediately and destroy this message. Unauthorized use, disclosure or copying of this message is strictly prohibited. The foundation 'Stichting Deltares', which has its seat at Delft, The Netherlands, Commercial Registration Number 41146461, is not liable in any way whatsoever for consequences and/or damages resulting from the improper, incomplete and untimely dispatch, receipt and/or content of this e-mail. |
From: Chris M. <dev...@gm...> - 2015-01-31 12:55:17
|
Are the .dll files in the PATH? On 1/30/2015 18:36, John Baumgardner wrote: > Hi Arjen, > > I have still had no success in getting my application to work linked > to plplot-5.10.0 under Cygwin. Here is what I am seeing. Things > apparently compile and link okay: > > $ make sphplt > gfortran -fdefault-real-8 -O3 -fdefault-real-8 -O3 > -I/usr/local/plplot/include -L/usr/local/plplot/lib -o sphplt sphplt.o > graphx.o \ > -lplplotd -lplplotf95d -lplplotf95cd > > But then when I execute I get the following error: > > $ sphplt > /home/johnrb/terra0314/sphplt.exe: error while loading shared > libraries: cygplplotf95d-11.dll: cannot open shared object file: No > such file or directory > > Might you have any idea what I am doing wrong here? Thanks for any > help you can provide. > > John > > At 12:01 AM 1/26/2015, Arjen Markus wrote: >> Hi John, >> >> I will have a closer look at this. >> >> Regards, >> Arjen >> >> *From:*John Baumgardner [mailto:jrb...@co... >> <mailto:jrb...@co...>] >> *Sent:*Monday, January 26, 2015 1:58 AM >> *To:*Arjen Markus; Alan W. Irwin >> *Cc:*plp...@li... >> *Subject:*[Plplot-general] How Do I Link Correctly To the Libraries >> Under 5.10.0? >> >> Hi Arjen and Alan, >> >> After achieving apparent success several days ago compiling and >> linking my application code under plplot-5.10.0, for some reason >> things ceased to work. The make process could no longer find the >> required libraries. So I went to examples/f95 and imitated (I think) >> the makefile I found there (Makefile.examples). Here is the >> resulting makefile I am attempting to use: >> >> F95 = /usr/bin/gfortran.exe >> FFLAGS = -fdefault-real-8 -O3 >> PKG_CONFIG_ENV = >> PKG_CONFIG_PATH="/home/johnrb/plplot-5.10.0/build_dir/lib/pkgconfig" >> RPATHCMD = -Wl,-rpath -Wl,/home/johnrb/plplot-5.10.0/build_dir/lib >> >> sphplt : sphplt.o graphx.o >> $(F95) $(FFLAGS) $(RPATHCMD) -o sphplt \ >> `$(PKG_CONFIG_ENV) pkg-config --cflags --libs plplotd-f95` \ >> sphplt.o graphx.o -lplplotd -lplplotf95d -lplplotf95cd >> >> Here is what I get when I do the make: >> >> $ make -f makesph >> /usr/bin/gfortran.exe -fdefault-real-8 -O3 -Wl,-rpath >> -Wl,/home/johnrb/plplot-5.10.0/build_dir/lib -o sphplt \ >> `PKG_CONFIG_PATH="/home/johnrb/plplot-5.10.0/build_dir/lib/pkgconfig" >> pkg-config --cflags --libs plplotd-f95` \ >> sphplt.o graphx.o -lplplotd -lplplotf95d -lplplotf95cd >> /usr/lib/gcc/x86_64-pc-cygwin/4.8.3/../../../../x86_64-pc-cygwin/bin/ld: >> cannot find -lplplotf95d-11.0.0 >> /usr/lib/gcc/x86_64-pc-cygwin/4.8.3/../../../../x86_64-pc-cygwin/bin/ld: >> cannot find -lplplotf95cd-11.0.0 >> collect2: error: ld returned 1 exit status >> makesph:8: recipe for target 'sphplt' failed >> make: *** [sphplt] Error 1 >> >> Any ideas as to what I am doing wrong? Thanks for any help you can >> provide. >> >> John >> >> P.S. Here is the pkgconfig/plplotd-f95.pc file: >> >> libdir=/home/johnrb/plplot-5.10.0/build_dir/bin >> includedir=/home/johnrb/plplot-5.10.0/build_dir/include/plplot >> drvdir=/home/johnrb/plplot-5.10.0/build_dir/lib/plplot5.10.0/driversd >> >> Name: PLplot F95 >> Description: Scientific plotting library (F95 bindings, double precision) >> Requires: plplotd >> Version: 5.10.0 >> Libs: -L${libdir} -lplplotf95d-11.0.0 -lplplotf95cd-11.0.0 >> Cflags: -I${includedir} >> -I/home/johnrb/plplot-5.10.0/build_dir/lib/fortran/modules/plplot >> >> Question: Why is libdir set to /bin and not /lib? /bin does not have >> libplplotf95d-11.0.0 while /lib does. >> DISCLAIMER: This message is intended exclusively for the addressee(s) >> and may contain confidential and privileged information. If you are >> not the intended recipient please notify the sender immediately and >> destroy this message. Unauthorized use, disclosure or copying of this >> message is strictly prohibited. The foundation 'Stichting Deltares', >> which has its seat at Delft, The Netherlands, Commercial Registration >> Number 41146461, is not liable in any way whatsoever for consequences >> and/or damages resulting from the improper, incomplete and untimely >> dispatch, receipt and/or content of this e-mail. > > > ------------------------------------------------------------------------------ > Dive into the World of Parallel Programming. The Go Parallel Website, > sponsored by Intel and developed in partnership with Slashdot Media, is your > hub for all things parallel software development, from weekly thought > leadership blogs to news, videos, case studies, tutorials and more. Take a > look and join the conversation now. http://goparallel.sourceforge.net/ > > > _______________________________________________ > Plplot-general mailing list > Plp...@li... > https://lists.sourceforge.net/lists/listinfo/plplot-general |
From: John B. <jrb...@co...> - 2015-01-31 16:52:58
|
Hi Chris, Thanks for that tip! It immediately resolved the problem. Things work beautifully now. Thanks again. John At 04:54 AM 1/31/2015, Chris Marshall wrote: >Are the .dll files in the PATH? > >On 1/30/2015 18:36, John Baumgardner wrote: >>Hi Arjen, >> >> I have still had no success in getting my application to work >> linked to plplot-5.10.0 under Cygwin. Here is what I am >> seeing. Things apparently compile and link okay: >> >>$ make sphplt >>gfortran -fdefault-real-8 -O3 -fdefault-real-8 -O3 >>-I/usr/local/plplot/include -L/usr/local/plplot/lib -o sphplt >>sphplt.o graphx.o \ >>-lplplotd -lplplotf95d -lplplotf95cd >> >>But then when I execute I get the following error: >> >>$ sphplt >>/home/johnrb/terra0314/sphplt.exe: error while loading shared >>libraries: cygplplotf95d-11.dll: cannot open shared object file: No >>such file or directory >> >>Might you have any idea what I am doing wrong here? Thanks for any >>help you can provide. >> >>John >> >>At 12:01 AM 1/26/2015, Arjen Markus wrote: >>>Hi John, >>> >>>I will have a closer look at this. >>> >>>Regards, >>>Arjen >>> >>>From: John Baumgardner [ mailto:jrb...@co...] >>>Sent: Monday, January 26, 2015 1:58 AM >>>To: Arjen Markus; Alan W. Irwin >>>Cc: >>><mailto:plp...@li...>plp...@li... >>>Subject: [Plplot-general] How Do I Link Correctly To the Libraries >>>Under 5.10.0? >>> >>>Hi Arjen and Alan, >>> >>> After achieving apparent success several days ago compiling >>> and linking my application code under plplot-5.10.0, for some >>> reason things ceased to work. The make process could no longer >>> find the required libraries. So I went to examples/f95 and >>> imitated (I think) the makefile I found there >>> (Makefile.examples). Here is the resulting makefile I am attempting to use: >>> >>>F95 = /usr/bin/gfortran.exe >>>FFLAGS = -fdefault-real-8 -O3 >>>PKG_CONFIG_ENV = >>>PKG_CONFIG_PATH="/home/johnrb/plplot-5.10.0/build_dir/lib/pkgconfig" >>>RPATHCMD = -Wl,-rpath -Wl,/home/johnrb/plplot-5.10.0/build_dir/lib >>> >>>sphplt : sphplt.o graphx.o >>> $(F95) $(FFLAGS) $(RPATHCMD) -o sphplt \ >>> `$(PKG_CONFIG_ENV) pkg-config --cflags --libs plplotd-f95` \ >>> sphplt.o graphx.o -lplplotd -lplplotf95d -lplplotf95cd >>> >>>Here is what I get when I do the make: >>> >>>$ make -f makesph >>>/usr/bin/gfortran.exe -fdefault-real-8 -O3 -Wl,-rpath >>>-Wl,/home/johnrb/plplot-5.10.0/build_dir/lib -o sphplt \ >>>`PKG_CONFIG_PATH="/home/johnrb/plplot-5.10.0/build_dir/lib/pkgconfig" >>>pkg-config --cflags --libs plplotd-f95` \ >>> sphplt.o graphx.o -lplplotd -lplplotf95d -lplplotf95cd >>>/usr/lib/gcc/x86_64-pc-cygwin/4.8.3/../../../../x86_64-pc-cygwin/bin/ld: >>>cannot find -lplplotf95d-11.0.0 >>>/usr/lib/gcc/x86_64-pc-cygwin/4.8.3/../../../../x86_64-pc-cygwin/bin/ld: >>>cannot find -lplplotf95cd-11.0.0 >>>collect2: error: ld returned 1 exit status >>>makesph:8: recipe for target 'sphplt' failed >>>make: *** [sphplt] Error 1 >>> >>> Any ideas as to what I am doing wrong? Thanks for any help you >>> can provide. >>> >>>John >>> >>>P.S. Here is the pkgconfig/plplotd-f95.pc file: >>> >>>libdir=/home/johnrb/plplot-5.10.0/build_dir/bin >>>includedir=/home/johnrb/plplot-5.10.0/build_dir/include/plplot >>>drvdir=/home/johnrb/plplot-5.10.0/build_dir/lib/plplot5.10.0/driversd >>> >>>Name: PLplot F95 >>>Description: Scientific plotting library (F95 bindings, double precision) >>>Requires: plplotd >>>Version: 5.10.0 >>>Libs: -L${libdir} -lplplotf95d-11.0.0 -lplplotf95cd-11.0.0 >>>Cflags: -I${includedir} >>>-I/home/johnrb/plplot-5.10.0/build_dir/lib/fortran/modules/plplot >>> >>>Question: Why is libdir set to /bin and not /lib? /bin does not >>>have libplplotf95d-11.0.0 while /lib does. >>>DISCLAIMER: This message is intended exclusively for the >>>addressee(s) and may contain confidential and privileged >>>information. If you are not the intended recipient please notify >>>the sender immediately and destroy this message. Unauthorized use, >>>disclosure or copying of this message is strictly prohibited. The >>>foundation 'Stichting Deltares', which has its seat at Delft, The >>>Netherlands, Commercial Registration Number 41146461, is not >>>liable in any way whatsoever for consequences and/or damages >>>resulting from the improper, incomplete and untimely dispatch, >>>receipt and/or content of this e-mail. >> >> >> >>------------------------------------------------------------------------------ >>Dive into the World of Parallel Programming. The Go Parallel Website, >>sponsored by Intel and developed in partnership with Slashdot Media, is your >>hub for all things parallel software development, from weekly thought >>leadership blogs to news, videos, case studies, tutorials and more. Take a >>look and join the conversation now. >><http://goparallel.sourceforge.net/>http://goparallel.sourceforge.net/ >> >> >>_______________________________________________ >>Plplot-general mailing list >><mailto:Plp...@li...>Plp...@li... >>https://lists.sourceforge.net/lists/listinfo/plplot-general > >------------------------------------------------------------------------------ >Dive into the World of Parallel Programming. The Go Parallel Website, >sponsored by Intel and developed in partnership with Slashdot Media, is your >hub for all things parallel software development, from weekly thought >leadership blogs to news, videos, case studies, tutorials and more. Take a >look and join the conversation now. http://goparallel.sourceforge.net/ >_______________________________________________ >Plplot-general mailing list >Plp...@li... >https://lists.sourceforge.net/lists/listinfo/plplot-general |
From: Arjen M. <Arj...@de...> - 2015-02-01 13:53:47
|
Hi John, Good to hear that has been solved :). Under Cygwin all these DLLs are initially created in the dll subdirectory under the build directory but with "make install" they will go into the bin directory ofyour Cygwin installation and then adjusting the path is no longer required. That is also the way forward for installing your applications on other machines. Regards, Arjen From: John Baumgardner [mailto:jrb...@co...] Sent: Saturday, January 31, 2015 5:53 PM To: Chris Marshall; plp...@li... Subject: Re: [Plplot-general] How Do I Link Correctly To the Libraries Under 5.10.0? Hi Chris, Thanks for that tip! It immediately resolved the problem. Things work beautifully now. Thanks again. John At 04:54 AM 1/31/2015, Chris Marshall wrote: Are the .dll files in the PATH? On 1/30/2015 18:36, John Baumgardner wrote: Hi Arjen, I have still had no success in getting my application to work linked to plplot-5.10.0 under Cygwin. Here is what I am seeing. Things apparently compile and link okay: $ make sphplt gfortran -fdefault-real-8 -O3 -fdefault-real-8 -O3 -I/usr/local/plplot/include -L/usr/local/plplot/lib -o sphplt sphplt.o graphx.o \ -lplplotd -lplplotf95d -lplplotf95cd But then when I execute I get the following error: $ sphplt /home/johnrb/terra0314/sphplt.exe: error while loading shared libraries: cygplplotf95d-11.dll: cannot open shared object file: No such file or directory Might you have any idea what I am doing wrong here? Thanks for any help you can provide. John At 12:01 AM 1/26/2015, Arjen Markus wrote: Hi John, I will have a closer look at this. Regards, Arjen From: John Baumgardner [ mailto:jrb...@co...] Sent: Monday, January 26, 2015 1:58 AM To: Arjen Markus; Alan W. Irwin Cc: plp...@li...<mailto:plp...@li...> Subject: [Plplot-general] How Do I Link Correctly To the Libraries Under 5.10.0? Hi Arjen and Alan, After achieving apparent success several days ago compiling and linking my application code under plplot-5.10.0, for some reason things ceased to work. The make process could no longer find the required libraries. So I went to examples/f95 and imitated (I think) the makefile I found there (Makefile.examples). Here is the resulting makefile I am attempting to use: F95 = /usr/bin/gfortran.exe FFLAGS = -fdefault-real-8 -O3 PKG_CONFIG_ENV = PKG_CONFIG_PATH="/home/johnrb/plplot-5.10.0/build_dir/lib/pkgconfig" RPATHCMD = -Wl,-rpath -Wl,/home/johnrb/plplot-5.10.0/build_dir/lib sphplt : sphplt.o graphx.o $(F95) $(FFLAGS) $(RPATHCMD) -o sphplt \ `$(PKG_CONFIG_ENV) pkg-config --cflags --libs plplotd-f95` \ sphplt.o graphx.o -lplplotd -lplplotf95d -lplplotf95cd Here is what I get when I do the make: $ make -f makesph /usr/bin/gfortran.exe -fdefault-real-8 -O3 -Wl,-rpath -Wl,/home/johnrb/plplot-5.10.0/build_dir/lib -o sphplt \ `PKG_CONFIG_PATH="/home/johnrb/plplot-5.10.0/build_dir/lib/pkgconfig" pkg-config --cflags --libs plplotd-f95` \ sphplt.o graphx.o -lplplotd -lplplotf95d -lplplotf95cd /usr/lib/gcc/x86_64-pc-cygwin/4.8.3/../../../../x86_64-pc-cygwin/bin/ld: cannot find -lplplotf95d-11.0.0 /usr/lib/gcc/x86_64-pc-cygwin/4.8.3/../../../../x86_64-pc-cygwin/bin/ld: cannot find -lplplotf95cd-11.0.0 collect2: error: ld returned 1 exit status makesph:8: recipe for target 'sphplt' failed make: *** [sphplt] Error 1 Any ideas as to what I am doing wrong? Thanks for any help you can provide. John P.S. Here is the pkgconfig/plplotd-f95.pc file: libdir=/home/johnrb/plplot-5.10.0/build_dir/bin includedir=/home/johnrb/plplot-5.10.0/build_dir/include/plplot drvdir=/home/johnrb/plplot-5.10.0/build_dir/lib/plplot5.10.0/driversd Name: PLplot F95 Description: Scientific plotting library (F95 bindings, double precision) Requires: plplotd Version: 5.10.0 Libs: -L${libdir} -lplplotf95d-11.0.0 -lplplotf95cd-11.0.0 Cflags: -I${includedir} -I/home/johnrb/plplot-5.10.0/build_dir/lib/fortran/modules/plplot Question: Why is libdir set to /bin and not /lib? /bin does not have libplplotf95d-11.0.0 while /lib does. DISCLAIMER: This message is intended exclusively for the addressee(s) and may contain confidential and privileged information. If you are not the intended recipient please notify the sender immediately and destroy this message. Unauthorized use, disclosure or copying of this message is strictly prohibited. The foundation 'Stichting Deltares', which has its seat at Delft, The Netherlands, Commercial Registration Number 41146461, is not liable in any way whatsoever for consequences and/or damages resulting from the improper, incomplete and untimely dispatch, receipt and/or content of this e-mail. ------------------------------------------------------------------------------ Dive into the World of Parallel Programming. The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ _______________________________________________ Plplot-general mailing list Plp...@li...<mailto:Plp...@li...> https://lists.sourceforge.net/lists/listinfo/plplot-general ------------------------------------------------------------------------------ Dive into the World of Parallel Programming. The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ _______________________________________________ Plplot-general mailing list Plp...@li...<mailto:Plp...@li...> https://lists.sourceforge.net/lists/listinfo/plplot-general DISCLAIMER: This message is intended exclusively for the addressee(s) and may contain confidential and privileged information. If you are not the intended recipient please notify the sender immediately and destroy this message. Unauthorized use, disclosure or copying of this message is strictly prohibited. The foundation 'Stichting Deltares', which has its seat at Delft, The Netherlands, Commercial Registration Number 41146461, is not liable in any way whatsoever for consequences and/or damages resulting from the improper, incomplete and untimely dispatch, receipt and/or content of this e-mail. |
From: John B. <jrb...@co...> - 2015-02-01 20:04:00
|
Hi Arjen, Thanks for that added clarification. I grasp things clearly now. I should have had the plplot bin directory in my path. That makes perfect sense. Thanks again for your help on this! John At 05:53 AM 2/1/2015, Arjen Markus wrote: >Hi John, > >Good to hear that has been solved. Under Cygwin all these DLLs are >initially created in the dll subdirectory under the build directory >but with "make install" they will go into the bin directory ofyour >Cygwin installation and then adjusting the path is no longer >required. That is also the way forward for installing your >applications on other machines. > >Regards, > >Arjen > >From: John Baumgardner [mailto:jrb...@co...] >Sent: Saturday, January 31, 2015 5:53 PM >To: Chris Marshall; plp...@li... >Subject: Re: [Plplot-general] How Do I Link Correctly To the >Libraries Under 5.10.0? > >Hi Chris, >Thanks for that tip! It immediately resolved the problem. Things >work beautifully now. >Thanks again. John > > >At 04:54 AM 1/31/2015, Chris Marshall wrote: > >Are the .dll files in the PATH? > >On 1/30/2015 18:36, John Baumgardner wrote: > >Hi Arjen, > > I have still had no success in getting my application to work > linked to plplot-5.10.0 under Cygwin. Here is what I am > seeing. Things apparently compile and link okay: > >$ make sphplt >gfortran -fdefault-real-8 -O3 -fdefault-real-8 -O3 >-I/usr/local/plplot/include -L/usr/local/plplot/lib -o sphplt >sphplt.o graphx.o \ >-lplplotd -lplplotf95d -lplplotf95cd > >But then when I execute I get the following error: > >$ sphplt >/home/johnrb/terra0314/sphplt.exe: error while loading shared >libraries: cygplplotf95d-11.dll: cannot open shared object file: No >such file or directory > >Might you have any idea what I am doing wrong here? Thanks for any >help you can provide. > >John > >At 12:01 AM 1/26/2015, Arjen Markus wrote: > >Hi John, > >I will have a closer look at this. > >Regards, >Arjen > >From: John Baumgardner [ ><mailto:jrb...@co...>mailto:jrb...@co...] >Sent: Monday, January 26, 2015 1:58 AM >To: Arjen Markus; Alan W. Irwin >Cc: ><mailto:plp...@li...>plp...@li... >Subject: [Plplot-general] How Do I Link Correctly To the Libraries >Under 5.10.0? > >Hi Arjen and Alan, > > After achieving apparent success several days ago compiling and > linking my application code under plplot-5.10.0, for some reason > things ceased to work. The make process could no longer find the > required libraries. So I went to examples/f95 and imitated (I > think) the makefile I found there (Makefile.examples). Here is the > resulting makefile I am attempting to use: > >F95 = /usr/bin/gfortran.exe >FFLAGS = -fdefault-real-8 -O3 >PKG_CONFIG_ENV = >PKG_CONFIG_PATH="/home/johnrb/plplot-5.10.0/build_dir/lib/pkgconfig" >RPATHCMD = -Wl,-rpath -Wl,/home/johnrb/plplot-5.10.0/build_dir/lib > >sphplt : sphplt.o graphx.o > $(F95) $(FFLAGS) $(RPATHCMD) -o sphplt \ > `$(PKG_CONFIG_ENV) pkg-config --cflags --libs plplotd-f95` \ > sphplt.o graphx.o -lplplotd -lplplotf95d -lplplotf95cd > >Here is what I get when I do the make: > >$ make -f makesph >/usr/bin/gfortran.exe -fdefault-real-8 -O3 -Wl,-rpath >-Wl,/home/johnrb/plplot-5.10.0/build_dir/lib -o sphplt \ >`PKG_CONFIG_PATH="/home/johnrb/plplot-5.10.0/build_dir/lib/pkgconfig" >pkg-config --cflags --libs plplotd-f95` \ > sphplt.o graphx.o -lplplotd -lplplotf95d -lplplotf95cd >/usr/lib/gcc/x86_64-pc-cygwin/4.8.3/../../../../x86_64-pc-cygwin/bin/ld: >cannot find -lplplotf95d-11.0.0 >/usr/lib/gcc/x86_64-pc-cygwin/4.8.3/../../../../x86_64-pc-cygwin/bin/ld: >cannot find -lplplotf95cd-11.0.0 >collect2: error: ld returned 1 exit status >makesph:8: recipe for target 'sphplt' failed >make: *** [sphplt] Error 1 > > Any ideas as to what I am doing wrong? Thanks for any help you > can provide. > >John > >P.S. Here is the pkgconfig/plplotd-f95.pc file: > >libdir=/home/johnrb/plplot-5.10.0/build_dir/bin >includedir=/home/johnrb/plplot-5.10.0/build_dir/include/plplot >drvdir=/home/johnrb/plplot-5.10.0/build_dir/lib/plplot5.10.0/driversd > >Name: PLplot F95 >Description: Scientific plotting library (F95 bindings, double precision) >Requires: plplotd >Version: 5.10.0 >Libs: -L${libdir} -lplplotf95d-11.0.0 -lplplotf95cd-11.0.0 >Cflags: -I${includedir} >-I/home/johnrb/plplot-5.10.0/build_dir/lib/fortran/modules/plplot > >Question: Why is libdir set to /bin and not /lib? /bin does not >have libplplotf95d-11.0.0 while /lib does. >DISCLAIMER: This message is intended exclusively for the >addressee(s) and may contain confidential and privileged >information. If you are not the intended recipient please notify the >sender immediately and destroy this message. Unauthorized use, >disclosure or copying of this message is strictly prohibited. The >foundation 'Stichting Deltares', which has its seat at Delft, The >Netherlands, Commercial Registration Number 41146461, is not liable >in any way whatsoever for consequences and/or damages resulting from >the improper, incomplete and untimely dispatch, receipt and/or >content of this e-mail. > > > > >------------------------------------------------------------------------------ >Dive into the World of Parallel Programming. The Go Parallel Website, >sponsored by Intel and developed in partnership with Slashdot Media, is >your >hub for all things parallel software development, from weekly thought >leadership blogs to news, videos, case studies, tutorials and more. Take >a >look and join the conversation now. ><http://goparallel.sourceforge.net/>http://goparallel.sourceforge.net/ > > >_______________________________________________ >Plplot-general mailing list ><mailto:Plp...@li...>Plp...@li... >https://lists.sourceforge.net/lists/listinfo/plplot-general >------------------------------------------------------------------------------ >Dive into the World of Parallel Programming. The Go Parallel Website, >sponsored by Intel and developed in partnership with Slashdot Media, is your >hub for all things parallel software development, from weekly thought >leadership blogs to news, videos, case studies, tutorials and more. Take a >look and join the conversation now. ><http://goparallel.sourceforge.net/>http://goparallel.sourceforge.net/ >_______________________________________________ >Plplot-general mailing list ><mailto:Plp...@li...>Plp...@li... >https://lists.sourceforge.net/lists/listinfo/plplot-general >DISCLAIMER: This message is intended exclusively for the >addressee(s) and may contain confidential and privileged >information. If you are not the intended recipient please notify the >sender immediately and destroy this message. Unauthorized use, >disclosure or copying of this message is strictly prohibited. The >foundation 'Stichting Deltares', which has its seat at Delft, The >Netherlands, Commercial Registration Number 41146461, is not liable >in any way whatsoever for consequences and/or damages resulting from >the improper, incomplete and untimely dispatch, receipt and/or >content of this e-mail. |