[CMake] Linking against libraries under windows

Michael Wild themiwi at gmail.com
Mon Aug 30 09:53:33 EDT 2010


Well, find_library finds exactly *ONE* library. On Linux you were just lucky, because there you usually don't have to link against transitive link dependencies. To use the CASROOT environment variable, use $ENV{CASROOT}.

And usually it is a good idea to write a "Find"-module (read the find_package documentation and the file ${CMAKE_ROOT}/Modules/readme.txt.

Michael

On 30. Aug, 2010, at 14:58 , Christian Lohr wrote:

> Hello,
> 
> I need to include libraries for linking against OpenCascade in my
> CMakeLists.txt. Everything went fine for Debian Linux, but I don’t get
> it working under windows. And I've got another question about this
> linking. I didn't get it working that "FIND_LIBRARY(OPENCASCADE_LIB
> TKernel TKMath TKSTEP ... )" and a following
> "TARGET_LINK_LIBRARIES(triangulation ${OPENCASCADE_LIB}) would link
> against all those libraries. It seemed that it only linked against
> TKernel, and omitted the rest. Under windows a environment variable is
> set, called CASROOT, usually pointing to C:\OpenCASCADE6.3.0\, is
> there a way getting cmake to use this path variable. The Libs under
> windows are under ${CASROOT}/win32/lib, and the includes are under
> ${CASROOT}/inc.
> 
> Yours sincerely,
> 
> Christian Lohr
> 
> 
> 
> ---------------------------------------------------------------------------------Here
> my CMakeLists.txt----------------------------------------------------------------------------
> project(TriangulationSTEP)
> 
> cmake_minimum_required(VERSION 2.6.0)
> find_package(Qt4 REQUIRED)
> include( ${QT_USE_FILE} )
> 
> include_directories(/usr/include/opencascade)
> #add_library(opencascade IMPORTED -lTKernel -lTKMath -lTKSTEP -lTKSTL
> -lTKXSBase -lTKTopAlgo -lTKBRep)
> 
> FIND_PATH ( CASROOT LICENSE PATHS C:/OpenCASCADE6.3.0/ )
> FIND_PATH ( OPENCASCADE_INCLUDE_DIR Standard.hxx PATHS
> /usr/include/opencascade ${CASROOT}/inc )
> message(${OPENCASCADE_INCLUDE_DIR})
> 
> FIND_LIBRARY( OPENCASCADE_LIB TKernel TKMath TKSTEP TKSTL TKXBase
> TKTopAlgo TKBRep)
> message( ${OPENCASCADE_LIB} )
> 
> FIND_LIBRARY( OPENCASCADE_LIB1 NAMES TKernel PATHS ${CASROOT}/win32/lib)
> FIND_LIBRARY( OPENCASCADE_LIB2 NAMES TKMath PATHS ${CASROOT}/win32/lib)
> FIND_LIBRARY( OPENCASCADE_LIB3 NAMES TKSTEP PATHS ${CASROOT}/win32/lib)
> FIND_LIBRARY( OPENCASCADE_LIB4 NAMES TKSTL PATHS ${CASROOT}/win32/lib)
> FIND_LIBRARY( OPENCASCADE_LIB6 NAMES TKTopAlgo PATHS ${CASROOT}/win32/lib)
> FIND_LIBRARY( OPENCASCADE_LIB7 NAMES TKBRep PATHS ${CASROOT}/win32/lib)
> 
> set(SOURCE_CPP
>  main.cpp
> )
> 
> include_directories(${CMAKE_CURRENT_BINARY_DIR})
> 
> add_executable(triangulation ${SOURCE_CPP})
> target_link_libraries(triangulation ${QT_LIBRARIES})
> target_link_libraries(triangulation ${OPENCASCADE_LIB1}
> ${OPENCASCADE_LIB2} ${OPENCASCADE_LIB3} ${OPENCASCADE_LIB4}
> ${OPENCASCADE_LIB6} ${OPENCASCADE_LIB7})
> _______________________________________________
> 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



More information about the CMake mailing list