Cmake编译遇到的坑以及解决办法

没有检索到摘要

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 报错:CMake Error: install(EXPORT “glog-targets” …) includes target “glog” which requires target “gflags_nothreads_static” that is not in any export set.

参考:解决方法

在CMakeLists.txt里面添加,因为我已经存在,不需要创建,所以可以去掉创建静态库这个命令:

# 创建静态库
add_library(fse_cas_static STATIC ${_SOURCE_FILES})
# 创建interface libraries
add_library(not_exported INTERFACE)
target_link_libraries(fse_cas_static PRIVATE not_exported)

# 安装脚本,生成导出文件fse-targets.cmake
install(TARGETS fse_cas_static EXPORT fse-targets DESTINATION lib)
# 安装导出文件fse-targets.cmake
install(EXPORT fse-targets DESTINATION lib/cmake/Exp)

2.报错:编译安装报错unrecognized command line option “-std=c++14” 无法识别的命令行选项“-std=c++14” 的解决办法

解决参考办法
这是因为gcc++的版本不匹配,一般要将gcc+版本升级
可以用gcc --version来查询当前版本

注意:如果你的库里面有好几个版本的gcc,可以选择对应的版本,然后添加到环境变量中:

vim ~./bashrc

export PATH=/mnt/lustre/share/gcc/gcc-5.3.0/bin:$PATH
export LD_LIBRARY_PATH=/mnt/lustre/share/gcc/gcc-5.3.0/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/mnt/lustre/share/gcc/gcc-5.3.0/lib64:$LD_LIBRARY_PATH

#不要忘记这一步
source ~./bashrc
#查看gcc版本
gcc --version

#编译CMakeLists.txt
cmake -D CMAKE_CXX_COMPILER=/to/your/path/bin/g++ ..

3.报错:CMake Error at fc_base/gflags-src/CMakeLists.txt:282 (message): Do not know how to define a 32-bit integer quantity on your system
这是编码格式出现了问题
在cmake编译的时候加上这个 -DINTTYPES_FORMAT:STRING=C99命令

cmake -DINTTYPES_FORMAT:STRING=C99 ../
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值