On 2014-08-29 18:22+0100 Phil Rosenberg wrote: > Hi Alan > Got both your messages. Unfortunately that cannot be where the external > libraries are linked into the examples as I am building static libraries so > almost that entire file (including the section you indicated) is skipped. > Just to be clear, Plplot itself is building fine, the linker error is when > building the examples.
When the plplot library is built as a static library, the devices are no longer independent DLL's, and instead the device code is inserted into the plplot library so all device compile flags and link flags need to be accumulated for that library. Of course, that is pretty difficult to get all that implemented correctly because of the large number of device drivers with many different dependencies so note my remarks below about also testing the default shared plplot library/dynamic devices case. The relevant CMake logic for the static plplot library case is in src/CMakeLists.txt (where the plplot library build is configured). In that case look for else(ENABLE_DYNDRIVERS) list(APPEND libplplot${LIB_TAG}_LINK_LIBRARIES ${DRIVERS_LINK_FLAGS}) [...] endif(ENABLE_DYNDRIVERS) [...] #message(STATUS #"libplplot${LIB_TAG}_LINK_LIBRARIES = ${libplplot${LIB_TAG}_LINK_LIBRARIES}" #) target_link_libraries( plplot${LIB_TAG} ${libplplot${LIB_TAG}_LINK_LIBRARIES} ) You should uncomment that message command to look at the CMake list in libplplot${LIB_TAG}_LINK_LIBRARIES to see if there is anything strange there in the static libraries case. Of course, you have stated that the static plplot library is building OK, but the trouble you are having with example builds may originate in how that library is built. What you said before about the extra .lib issue was 'This allows me to compile, but I am getting linker errors in the examples, because the linker flags are ending up as "C:/Program Files/Tcl/lib/tcl86.lib".lib' To proceed further I need complete information. Therefore, please send the usual that I always request for a complete bug report: cmake version, complete cmake options used, complete output from cmake command starting from initially empty build tree, complete (VERBOSE=1) output from (n)make command, CMakeCache.txt file. The first two items you can send just as part of the main text part of your next post here, but the remaining items should be packed into a compressed tarball or zip file and attached to that same post. Here are some further possibilities to consider: Use CMake-2.8.12.2 and the NMake generator (for the reasons I gave before). Also, the static plplot library case is not nearly as well debugged for our build system as the default shared libraries/dynamic devices case. Therefore, I would also try that default case (which would be an additional valuable test of building the Tcl/Tk bindings for your platform). Of course, remember to use the -DTEST_DYNDRIVERS=OFF workaround that is normally required for this case on Windows (to avoid doing the simple test of dynamic devices that fails on Windows when the same test with essentially the same code succeeds when run from the plplot library on Windows! Go figure....) 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 __________________________ ------------------------------------------------------------------------------ Slashdot TV. Video for Nerds. Stuff that matters. http://tv.slashdot.org/ _______________________________________________ Plplot-devel mailing list Plplot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/plplot-devel