开发者社区> 问答> 正文

CMake中如何使用find_library添加glibc库:报错

运行环境:ubuntu 14.04       cmake:3.3       glib:2.19

我想要在下面的hello子目录中使用glibc库,请问应该怎么写该子目录下的CMakeLists.txt?如果使用find_library的话,要怎么写?

我的项目目录

laolang@laolang-Lenovo-G470:~/code/cmake/eclipse/HelloCMake$ tree
.
├── bin
├── CMakeLists.txt
├── include
│   ├── hello.h
│   └── sum.h
├── lib
│   └── libsum.a
└── src
    ├── CMakeLists.txt
    ├── hello
    │   ├── CMakeLists.txt
    │   └── hello.c
    ├── main
    │   ├── CMakeLists.txt
    │   └── main.c
    └── sum
        ├── CMakeLists.txt
        └── sum.c

7 directories, 11 files
laolang@laolang-Lenovo-G470:~/code/cmake/eclipse/HelloCMake$


其中sum子目录只用到了标准库,也生成.a文件了,那么我在hello子目录中使用了glibc库,要如何写txt文件?我的hello子目录中txt文件


# hello CMakeLists.txt

# 设置编译器
set(CMAKE_C_COMPILER gcc) 
 # glibc 库目录
 set(GLIBC_INCLUDE /usr/include/glib-2.0 /usr/lib/x86_64-linux-gnu/glib-2.0/include) 
 #glibc 库文件
 set(GLIBC_LIB glib-2.0) 
# 源文件列表
set(SRC_LIST hello.c) 
# 头文件目录
include_directories(${HELLO_SOURCE_DIR}/include) 
# 设置生成的库文件的路径
set(LIBRARY_OUTPUT_PATH ${HELLO_SOURCE_DIR}/lib)
# 所需要的库文件的目录
link_directories($(GLIBC_INCLUDE)) 
# 生成的库文件
add_library(hello STATIC ${SRC_LIST}) 
# 需要链接的库文件
target_link_libraries(hello $(GLIBC_LIB))


make hello人错误信息:


laolang@laolang-Lenovo-G470:~/code/cmake/eclipse/HelloCMake/build$ make hello
Scanning dependencies of target hello
[ 50%] Building C object src/hello/CMakeFiles/hello.dir/hello.o
/home/laolang/code/cmake/eclipse/HelloCMake/src/hello/hello.c:2:17: fatal error: glib.h: 没有那个文件或目录
 #include<glib.h>
                 ^
compilation terminated.
make[3]: *** [src/hello/CMakeFiles/hello.dir/hello.o] 错误 1
make[2]: *** [src/hello/CMakeFiles/hello.dir/all] 错误 2
make[1]: *** [src/hello/CMakeFiles/hello.dir/rule] 错误 2
make: *** [hello] 错误 2
laolang@laolang-Lenovo-G470:~/code/cmake/eclipse/HelloCMake/build$










展开
收起
kun坤 2020-06-14 08:54:04 1648 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载