CMake
文章平均质量分 61
henry860916
水滴石穿
展开
-
Cmake例子一二
例子一: 单个源文件 main.c例子二: 分解成多个 main.c hello.h hello.c例子三: 先生成一个静态库,链接该库例子四: 将源文件放置到不同的目录例子五: 控制生成的程序和库所在的目录例子六: 使用动态库而不是静态库例子一一个经典的C程序,如何用cmake来进行构建程序呢?//main.c#include int main(){原创 2015-12-28 19:54:05 · 261 阅读 · 0 评论 -
CMake 创建静态库及动态库供函数调用
CMake 创建静态库及动态库供函数调用,下面是项目的树状图.├── cmake_fei│ ├── build│ ├── CMakeLists.txt│ ├── doc│ │ ├── readme.txt│ │ └── CMakeLists.txt│ ├── libhello│ │ ├── CMakeLists.txt│ │ ├原创 2015-12-31 20:21:38 · 5733 阅读 · 1 评论 -
CMake cache
CMakeCache.txt可以将其想象成一个配置文件(在Unix环境下,我们可以认为它等价于传递给configure的参数)。CMakeLists.txt 中通过 set(... CACHE ...) 设置的变量 CMakeLists.txt 中的 option() 提供的选项 CMakeLists.txt 中find_package() 等find命令引入变量 命令行 cm原创 2015-12-28 19:59:57 · 2046 阅读 · 0 评论 -
CMake 与 Finder
学习一下cmake的 finder。finder是神马东西?当编译一个需要使用第三方库的软件时,我们需要知道:去哪儿找头文件 .h 对比GCC的 -I 参数 去哪儿找库文件 (.so/.dll/.lib/.dylib/...) 对比GCC的 -L 参数 需要链接的库文件的名字 对比GCC的 -l 参数这也是一个 finder 需要返回的最基本的信息。原创 2015-12-28 19:58:18 · 251 阅读 · 0 评论 -
CMake 基础
简单的语法•注释# 我是注释•命令语法COMMAND(参数1 参数2 ...)•字符串列表A;B;C # 分号分割或空格分隔的值•变量(字符串或字符串列表)set(Foo a b c) 设置变量 Foo command(${Foo}) 等价于 command(a b c)command("${Foo}") 等价于 command("a b c")原创 2015-12-28 19:57:38 · 285 阅读 · 0 评论 -
CMake 例子五六
例子五前面还是有一点不爽:如果想让可执行文件在 bin 目录,库文件在 lib 目录怎么办?就像下面显示的一样: + build/ | +--+ bin/ | | | /--- hello.exe | /--+ lib/ | /--- hello.lib•一种办法:修改顶级的 CMakeList.t原创 2015-12-28 19:56:15 · 217 阅读 · 0 评论 -
CMake 例子三四
例子三接前面的例子,我们将 hello.c 生成一个库,然后再使用会怎么样?改写一下前面的CMakeList.txt文件试试:project(HELLO)set(LIB_SRC hello.c)set(APP_SRC main.c)add_library(libhello ${LIB_SRC})add_executable(hello ${APP_SRC})targ原创 2015-12-28 19:55:16 · 215 阅读 · 0 评论 -
CMake 包含了头文件 找到了so动态库 链接时仍然出现undefined reference to 错误
今天遇到一个CMake 链接问题,这里提出来和大家分享:问题:自己用C语言写了一个动态:libword-counter.so,公开头文件word-counter.h, 其中有函数如:wc_get_word_freq()自己用C++语言写了一个测试工程,在main函数中调用上述库函数wc_get_word_freq。结果出现undefined reference to 的错误分析原创 2015-12-30 13:59:03 · 26016 阅读 · 5 评论