cmake 输出路径通常需要设置一下,这里记录一下:
1.设置可执行文件的输出路径:
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/../bin)
2.静态库 lib 输出路径:
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/../bin)
3.动态库输出路径(注意这个放在最后):
SET_TARGET_PROPERTIES(dllname PROPERTIES RUNTIME_OUTPUT_DIRECTORY ../bin)
4.上面两条语句分别设置了Debug版本和Release版本下库文件的后缀名
set(CMAKE_DEBUG_POSTFIX "_d") set(CMAKE_RELEASE_POSTFIX "_r")
5.设置了Debug版本和Release版本下可执行文件的后缀名
set_target_properties(${TARGET_NAME} PROPERTIES DEBUG_POSTFIX "_d") set_target_properties(${TARGET_NAME} PROPERTIES RELEASE_POSTFIX "_r")
6.设置项目名称:
PROJECT( name )
7.设置链接库名称:
target_link_libraries
例:target_link_libraries(
DealWithMould
${VTK_LIBRARIES}
)
target_link_libraries(myProject hello)
7.可执行文件名,通过指定的源文件列表构建出可执行目标文件:
ADD_EXECUTABLE
ADD_EXECUTABLE(main main.cpp context.cpp patten.cpp patten.hpp )
8. 为生成的target配置安装目录
install(TARGETS MyLib
EXPORT MyLibTargets
LIBRARY DESTINATION lib # 动态库安装路径
ARCHIVE DESTINATION lib # 静态库安装路径
RUNTIME DESTINATION bin # 可执行文件安装路径
PUBLIC_HEADER DESTINATION include # 头文件安装路径
)
LIBRARY, ARCHIVE, RUNTIME, PUBLIC_HEADER是可选的,可以根据需要进行选择。 DESTINATION后面的路径可以自行制定,根目录默认为CMAKE_INSTALL_PREFIX
,可以试用set
方法进行指定,如果使用默认值的话,Unix系统的默认值为 /usr/local
, Windows的默认值为 c:/Program Files/${PROJECT_NAME}
。比如字linux系统下若LIBRARY的安装路径指定为lib
,即为/usr/local/lib
。所以要安装mymath mymathapp
我们可以这样写