You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu17.10下Code::Blocks中GTest链接库缺失问题及查找方法

解决Ubuntu 17.10下Code::Blocks使用GTest的"undefined reference"错误

你遇到的问题其实很常见——libgtest-dev这个包只安装了GTest的源代码,并没有预编译好可直接链接的库文件,所以即便你装了包、编译了测试代码,链接阶段还是找不到对应的库,才会报未定义引用错误。下面是具体的解决步骤:

1. 编译生成GTest静态库

libgtest-dev把源码放在了/usr/src/gtest目录下,我们需要手动编译生成静态库:

cd /usr/src/gtest
sudo mkdir build
cd build
cmake ..
make

执行完这些命令后,你会在当前的build目录下得到两个静态库文件:libgtest.a(核心测试库)和libgtest_main.a(包含默认main函数的启动库)。

2. 把库文件放到系统标准路径(可选但推荐)

为了让系统和IDE能方便找到这些库,把编译好的库拷贝到系统标准库目录:

sudo cp libgtest.a libgtest_main.a /usr/lib/

如果不想放到系统目录,也可以跳过这一步,后续在Code::Blocks里直接指定库文件的完整路径。

3. 在Code::Blocks中配置链接库

打开你的项目,按以下步骤操作:

  • 点击顶部菜单栏的Project → Build options
  • 切换到Linker settings标签页
  • 在Link libraries区域点击Add,分别输入gtest和gtest_main(系统会自动匹配对应的库文件,不需要加lib前缀或.a后缀)
  • 顺便检查Search directories → Compiler里是否添加了/usr/include/gtest,确保头文件能被正确找到

4. 验证修复

重新编译你的测试项目,之前的"undefined reference to x"错误应该就消失了。

内容的提问来源于stack exchange,提问作者RLim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:21:57