#添加可执行文件 add_executable(main main.c) add_executable(main main.c testFunc.c) add_executable(main ${SRC_LIST}) #将指定目录下所有的源文件存储在一个变量中 aux_source_directory(dir var) aux_source_directory(. SRC_LIST) #新建变量 set( SRC_LIST ./main.c ./testFunc1.c ./testFunc.c) set (EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin) set (LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib) #添加多个指定头文件的搜索路径,有点类似java中的import package.* include_directories (test_func) include_directories (test_func test_func1) #向当前工程添加存放源文件的子目录,一般用在*配置文件 add_subdirectory (src) #宏变量 EXECUTABLE_OUTPUT_PATH :目标二进制可执行文件的存放位置 PROJECT_SOURCE_DIR:工程的根目录 LIBRARY_OUTPUT_PATH: 库文件的默认输出路径 #生成动态库或静态库 add_library add_library (testFunc_shared SHARED ${SRC_LIST}) add_library (testFunc_static STATIC ${SRC_LIST}) #设置最终生成的库的名称 set_target_properties set_target_properties (testFunc_static PROPERTIES OUTPUT_NAME "testFunc") #在指定目录下查找指定库,参数一是变量名称,参数二是库名称,参数三是HINTS,参数四是路径 find_library(TESTFUNC_LIB testFunc HINTS ${PROJECT_SOURCE_DIR}/testFunc/lib) #把目标文件与库文件进行链接 target_link_libraries target_link_libraries (main ${TESTFUNC_LIB}) #添加编译选项 add_compile_options(-std=c++11 -Wall)