On 28. Mar, 2010, at 1:57 , Colin Michael Diesh wrote:

> Hey, I was trying to use the TARGET_LINK_LIBRARIES in a CMakeLists.txt file 
> but the linking doesn't end up working. I am using cygwin and CMake 2.6.4
> 
> Currently, I am having trouble with the OpenGL libraries. It links GLUT but 
> not the OpenGL libraries.
> 
> 
> CMakeLists.txt
> ----------------
> ...
> FIND_PACKAGE(OpenGL)
> FIND_PACKAGE(GLUT)
> ...
> SET(program_LIBS ${program_LIBS} ${GLUT_LIBRARIES} )
> SET(program_LIBS ${program_LIBS} ${OPENGL_LIBRARIES} )
> ...
> ADD_EXECUTABLE(tiney ${program_SRCS})
> TARGET_LINK_LIBRARIES(program ${program_LIBS})
> ...
> ----------------------
> 
> 
> 
> Doing MESSAGE(STATUS "${program_LIBS}") gives
> 
> -- 
> /lib/libglut.dll.a;/usr/lib/w32api/libglu32.a;/usr/lib/w32api/libopengl32.a;/usr/X11R6/lib/libGLEW.a
> 
> 
> 
> CMakeFiles/program.dir/link.txt says this
> ----------------------------
> /usr/bin/gcc.exe  -O3 -DNDEBUG   CMakeFiles/tiney.dir/main.c.o  -o tiney.exe 
> -Wl,--out-implib,libtiney.dll.a 
> -Wl,--major-image-version,0,--minor-image-version,0  -lglut 
> /usr/lib/w32api/libglu32.a /usr/lib/w32api/libopengl32.a 
> /usr/X11R6/lib/libGLEW.a 
> ----------------------------
> 
> 
> So it links GLUT correctly, but the opengl libraries do not get linked, they 
> do not have '-l'. Is there any way I can fix this?
> 
> Note: it also doesn't work for another library, libGLEW.a.
> 
> -Colin

There seems to be nothing wrong here... If possible, CMake prefers to link 
using the full path instead of relying on the -l flag. This is mainly because 
using -L and -l it is very difficult to ensure which library is linked if there 
are more than one library by that name on the linker path. Also, the linker 
will usually prefer dynamic libraries over static ones, unless forced with a 
special flag, but then that flag acts on all libraries, not just one.

Michael
_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to