[CMake] how to link with a system library ?
Steven Samuel Cole
steven.samuel.cole at gmail.com
Sun Sep 21 10:02:26 EDT 2008
Mike Jackson schrieb:
>
>
>
> On Sep 21, 2008, at 9:28 AM, Steven Samuel Cole wrote:
>
>> Mike Jackson schrieb:
>>> include(FindGTK)
>>> add_executable (myexec ${sources} )
>>> target_link_libraries(myexec ${GTK_LIBRARIES} )
>>> Note the order above.
>>> Also, cmake variables are ALWAYS used with braces ${Variable} NOT
>>> $Variable.
>>> Mike
>>
>> Thanks for that, Mike :-)
>>
>> The sample code corresponds to what I'm doing, even the order happens
>> to be the same. I still keep getting GTK include errors. Tried
>> include_directories (... ${GTK_INCLUDE_DIR}) in all orders.
>>
>> BTW: Why does the order matter ? How do I know the right order ?
>>
>> When I use hand-coded include paths, I get GTK linker errors.
>>
>> > If you are having cmake generate makefiles then run make in the
>> > following fashion:
>> >
>> > make VERBOSE=1
>> >
>> > and carefully inspect the compile line. From that you should be able
>> > to deduce why gtk/gtk.h is NOT on the include paths.
>>
>> True,there is nothing GTK-related in the compile line.
>>
>> So does FindGTK silently fail to find GTK inc/libs ?
>> If so, how can I fix that ?
>>>
>
>
> You need to "add_executable" before you can "target_link_libraries". The
> add_executable command adds a "target" called myexec. Then you
> "target_link_libraries". Think of the "add_executable" as the compile
> step and the "target_link_libraries" as the link step. You have to
> compile before you can link. ;-)
>
> Looking at the FindGTK module in CMake 2.6.1 it would seem that it will
> silently fail. add the following to your cmake code:
>
> FIND_PACKAGE(GTK REQUIRED)
> IF (NOT GTK_FOUND)
> MESSAGE (FATAL_ERROR "GTK NOT FOUND")
> ENDIF (NOT GTK_FOUND)
>
> then your add_executable and target_link_libraries lines and lets see
> what happens
>
>
> ---
> Mike Jackson - Principal Software Engineer
> www.bluequartz.net
>
>
CMake Error: GTK NOT FOUND
-- Configuring done
make: *** [cmake_check_build_system] Error 255
GTK 2.0 comes into my Kubuntu 8.0.4 system with a standard debian
package. Nothing customized. All in standard paths.
More information about the CMake
mailing list