ADD_LIBRARY(hello_static STATIC ${LIBHELLO_SRC}) #对hello_static的重名为hello SET_TARGET_PROPERTIES(hello_static PROPERTIES OUTPUT_NAME "hello") # cmake 在构建一个新的target 时,会尝试清理掉其他使用这个名字的库,如果没有清理还是会只会构建一个动态库,不会构建出静态库 SET_TARGET_PROPERTIES(hello...
本小节描述了使用cmake构建Hello World程序的全部过程,并介绍了三个简单的指令:PROJECT/MESSAGE/ADD_EXECUTABLE以及变量调用的方法,同时提及了两个隐式变量<projectname>_SOURCE_DIR及<projectname>_BINARY_DIR,演示了变量调用的方法,从这个过程来看,有些开发者可能会想,这实在比我直接写Makefile要复杂多了,甚至我都...
add_executable(main main.c testFunc.c) 3.1.1.3 运行查看 cmake . make 然后运行查看: 运行成功! 可以类推,如果在同一目录下有多个源文件,那么只要在add_executable里把所有源文件都添加进去就可以了。 但是如果有一百个源文件,再这样做就有点坑了,无法体现cmake的优越性。 因此cmake提供了一个命令可以把指...
set(lib_src add.cpp) add_library(add STATIC ${lib_src}) 1. 2. add_library 参数说明 add :库文件名称,Linux 上生成库文件会自动加上前后缀,如当前的静态库文件名称为 libadd.a; STATIC :静态库,动态库为 SHARED; ${lib_src} :构造库文件所需的源码文件。 最外层 CMakeLists.txt ,生成的库文件...
add_executable(main main.c) 2.3 运行查看 在终端下切到main.c所在的目录下,然后输入以下命令运行cmake: cmake . 输出结果如下: ps:此时,建议留意一下这个文件夹下多生成的文件都有哪些。 可以看到成功生成了Makefile,还有一些cmake运行时自动生成的文件。
ADD_EXECUTABLE(hello main.cpp) 定义了这个工程会生成一个文件名为 hello 的可执行文件,相关的源文件是mian.cpp。 4,ADD_LIBRARY 该指令的主要作用就是将指定的源文件生成链接库文件,然后添加到工程中去。语法如下: add_library(<name> [STATIC | SHARED | MODULE] [EXCLUDE_FROM_ALL] [source1] [source2...
这个错误的原因是不能识别std,即没有链接'libstdc++'的库,在cmake中有链接-static-libstdc++,而且交叉工具链中是有libstdc++.a库,当我们将cmake改为: 代码语言:txt 复制 add_executable(${target} ${src_sample}) target_link_libraries(${target} -lstdc++) ...
add_executable(MyProject main.cpp)3. add_library:指定生成静态库或动态库的源代码文件。add_library(MyLibrary STATIC lib.cpp)4. target_link_libraries:指定链接的库文件。target_link_libraries(MyProject MyLibrary)5. include_directories:指定头文件的目录。include_directories(include)6. set:设置变量的...
add_executable(main main.c) 2.3 运行查看 在终端下切到main.c所在的目录下,然后输入以下命令运行cmake: cmake . 输出结果如下: ps:此时,建议留意一下这个文件夹下多生成的文件都有哪些。 可以看到成功生成了Makefile,还有一些cmake运行时自动生成的文件。
ADD_EXECUTABLE(hello main.c) 本示例使用 ${} 来引用变量,这是 cmake 的变量引用方式;但是有例外情况,比如在 IF 控制语句,变量 的值是直接使用变量名来引用的,不需要 ${} —— 如果使用了 ${} 去引用变量,IF 会去判断名为 ${} 所代表的 值的变量(在本示例中这样的变量当然是不存在的)。