我使用find_package
将外部库包含到我的CMake项目中。因为我想添加对静态链接的支持,所以我设置了set(BUILD_SHARED_LIBS FALSE)
。但是,我仍然得到像libglew32.dll.a
这样的库,这些库只是使动态链接更容易的包装器。相反,我希望CMake找到存在于同一目录中的libglew32.a
。这是我使用的module to find GLEW。
答案 0 :(得分:3)
您始终可以使用文件名链接到精确的库。以下是您将使用的标志
-l:[filename]
对于cmake
target_link_libraries(target :libglew32.a)
答案 1 :(得分:2)
在linux上执行此操作将使用所有静态库
set(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
如果您正在构建外部库,通常我只是将它们包含在我的目标
中target_link_libraries(myprogram
${LIBROCKET_LIBS_DIRS}/libRocketCore.a
${LIBROCKET_LIBS_DIRS}/libRocketControls.a)