[CMake] CMake target_link_libraries items should be quoted or not? Linux/Ubuntu 14.04 cmake 3.4.1

J Decker d3ck0r at gmail.com
Thu Dec 10 03:53:17 EST 2015


On Thu, Dec 10, 2015 at 12:15 AM, Petr Kmoch <petr.kmoch at gmail.com> wrote:
> 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
> <normand.robert at sri.utoronto.ca> wrote:
>>
>> robert at 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
>>


More information about the CMake mailing list