Re: [CMake] CMake target_link_libraries items should be quoted or not? Linux/Ubuntu 14.04 cmake 3.4.1
On Thu, Dec 10, 2015 at 12:15 AM, Petr Kmochwrote: > Hi, > > Side note: you probably shouldn't be using the -l prefix with arguments to > target_link_libraries(). The arguments are normally supposed to be either > CMake target names, or full paths to the libraries you want to link. No need > to prefix them with linker command-line options, CMake does that for you > accordingly. CMake/build system will typically search the library path, so you don't need full paths... typically just the name of the library... should be more like .. target_link_libraries(Debug ${VTK_LIBRARIES} sri-spatialfft sri-spatial sri-memory) > > Petr > > On Wed, Dec 9, 2015 at 6:22 PM, Normand Robert > wrote: >> >> robert@kalymnos:~/Code/Debug/normandBuild$ cmake --version >> cmake version 3.4.1 >> >> Reading docs trying to understand why my build works when I write >> >> target_link_libraries(Debug ${VTK_LIBRARIES} -lsri-spatialfft >> -lsri-spatial -lsri-memory) >> >> but not when everything is protected in quotes: >> >> target_link_libraries(Debug "${VTK_LIBRARIES} -lsri-spatialfft >> -lsri-spatial -lsri-memory") >> >> which causes an extra library which does not exist to be passed to the >> linker. Is this expected behaviour? >> >> -- >> Normand Robert PhD >> Sunnybrook Health Sciences Centre >> Room S632, 2075 Bayview Avenue, Toronto, ON M4N 3M5 >> -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake
Re: [CMake] CMake target_link_libraries items should be quoted or not? Linux/Ubuntu 14.04 cmake 3.4.1
Hi, yes, that is indeed expected behaviour. target_link_libraries() takes a CMake list of arguments - one library per argument. When you surround the thing with quotes, it's a single argument (containing some spaces). So for this call: target_link_libraries(Debug "${VTK_LIBRARIES} -lsri-spatialfft -lsri-spatial -lsri-memory") CMake will instruct the linker to look for a library named "-sri-spatialfft -lsri-spatial -lsri-memory" (one file name with spaces and semicolons in it). Since such a library does not exist, that fails. Without the quotes, each element of the list VTK_LIBRARIES will be a separate argument to target_link_libraries, as will "-lsri-spatialfft", "-lsri-spatial", and "-lsri-memory". Side note: you probably shouldn't be using the -l prefix with arguments to target_link_libraries(). The arguments are normally supposed to be either CMake target names, or full paths to the libraries you want to link. No need to prefix them with linker command-line options, CMake does that for you accordingly. Petr On Wed, Dec 9, 2015 at 6:22 PM, Normand Robert < normand.rob...@sri.utoronto.ca> wrote: > robert@kalymnos:~/Code/Debug/normandBuild$ cmake --version > cmake version 3.4.1 > > Reading docs trying to understand why my build works when I write > > target_link_libraries(Debug ${VTK_LIBRARIES} -lsri-spatialfft > -lsri-spatial -lsri-memory) > > but not when everything is protected in quotes: > > target_link_libraries(Debug "${VTK_LIBRARIES} -lsri-spatialfft > -lsri-spatial -lsri-memory") > > which causes an extra library which does not exist to be passed to the > linker. Is this expected behaviour? > > -- > Normand Robert PhD > Sunnybrook Health Sciences Centre > Room S632, 2075 Bayview Avenue, Toronto, ON M4N 3M5 > > -- > > Powered by www.kitware.com > > Please keep messages on-topic and check the CMake FAQ at: > http://www.cmake.org/Wiki/CMake_FAQ > > Kitware offers various services to support the CMake community. For more > information on each offering, please visit: > > CMake Support: http://cmake.org/cmake/help/support.html > CMake Consulting: http://cmake.org/cmake/help/consulting.html > CMake Training Courses: http://cmake.org/cmake/help/training.html > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/cmake > -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake
[CMake] CMake target_link_libraries() items should be quoted or not? Linux/Ubuntu 14.04 cmake 3.4.1
Reading docs trying to understand why my build works when I write target_link_libraries(Debug ${VTK_LIBRARIES} -lsri-spatialfft -lsri-spatial -lsri-memory) but does not work when everything is protected in quotes: target_link_libraries(Debug "${VTK_LIBRARIES} -lsri-spatialfft -lsri-spatial -lsri-memory") which causes an extra library which does not exist to be passed to the linker. Is this expected behaviour? robert@kalymnos:~/Code/Debug/normandBuild$ cmake --version cmake version 3.4.1 -- Normand Robert PhD Sunnybrook Health Sciences Centre Room S632, 2075 Bayview Avenue, Toronto, ON M4N 3M5 -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake
[CMake] CMake target_link_libraries items should be quoted or not? Linux/Ubuntu 14.04 cmake 3.4.1
robert@kalymnos:~/Code/Debug/normandBuild$ cmake --version cmake version 3.4.1 Reading docs trying to understand why my build works when I write target_link_libraries(Debug ${VTK_LIBRARIES} -lsri-spatialfft -lsri-spatial -lsri-memory) but not when everything is protected in quotes: target_link_libraries(Debug "${VTK_LIBRARIES} -lsri-spatialfft -lsri-spatial -lsri-memory") which causes an extra library which does not exist to be passed to the linker. Is this expected behaviour? -- Normand Robert PhD Sunnybrook Health Sciences Centre Room S632, 2075 Bayview Avenue, Toronto, ON M4N 3M5 -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake