打算把项目用cmake重新做一遍,笔记待补充
cmake_minimum_required(VERSION 2.8.9)
project (hello)
#输出工程的根目录
message(${PROJECT_SOURCE_DIR})
set(LIB_SRC hello.cpp)
set(APP_SRC test.cpp)
#生成库文件
add_library(hello_static STATIC ${LIB_SRC})
#生成一个可执行文件
add_executable(hello ${APP_SRC})
#设置输出的名称,设置动态库的版本和API版本
set_target_properties(hello_static PROPERTIES OUTPUT_NAME "hello")
#在构建libhello.a时,就会清理掉libhello.so.,为避免这个问题,再次定义属性
set_target_properties (hello_static PROPERTIES CLEAN_DIRECT_OUTPUT 1)
set_target_properties (hello PROPERTIES CLEAN_DIRECT_OUTPUT 1)
#为target添加需要链接的共享库,链接的顺序应当符合gcc链接顺序规则,被依赖在后
target_link_libraries(hello hello_static)
#使用 SET(EXECUTABLE_OUTPUT_PATH <新路径>)并不会对这个变量造成影响,它仅仅修改了最终目标文件存放的路径。
#set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
#set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib)
#添加头文件搜索目录
#include_directories(${PROJECT_SOURCE_DIR}/libhello)
#向当前工程添加存放源文件的子目录,第二个参数(如果有)用于指定外部文件夹在输出文件夹中的位置,EXCLUDE_FROM_ALL排除
#add_subdirectory(src bin)
#aux_source_directory(. SRC_LIST) # 搜索当前目录下的所有.cpp文件
#link_directories(dir1 dir2 ...) # 添加非标准的共享库搜索路径