Mac Pro下Homebrew安装Boost后无法运行单元测试求助
问题:Boost单元测试框架链接失败(Mac Pro + Homebrew安装)
使用Mac Pro,已通过Homebrew执行brew install boost安装Boost,但编译测试程序时出现错误:
library not found for -lboost_unit_test_framework
测试文件代码:
#define BOOST_TEST_DYN_LINK #define BOOST_TEST_MODULE ComplexTest #include "Real.hpp" #include <boost/test/unit_test.hpp> BOOST_AUTO_TEST_CASE(TestAdd) { BOOST_CHECK_EQUAL(Real(2) + Real(2), Real(4)); }
尝试改用以下头文件包含方式仍失败:
#include <boost/test/included/unit_test_framework.hpp>
解决方案
先确认Boost的安装路径,执行命令:
brew --prefix boost输出路径通常为
/usr/local/lib(Intel芯片)或/opt/homebrew/lib(M系列芯片)。编译时手动指定库路径和链接参数:
以g++为例,编译命令需加上Boost库路径和链接库:g++ your_test_file.cpp -o test -I$(brew --prefix boost)/include -L$(brew --prefix boost)/lib -lboost_unit_test_framework若使用
#include <boost/test/included/unit_test_framework.hpp>:
该头文件已包含整个单元测试框架的实现,编译时无需链接-lboost_unit_test_framework,但需确保编译器能找到Boost头文件,命令如下:g++ your_test_file.cpp -o test -I$(brew --prefix boost)/include检查动态链接宏定义:
若保持BOOST_TEST_DYN_LINK,需确保链接的是动态库;若想使用静态库,可移除BOOST_TEST_DYN_LINK宏,编译时直接链接静态版本的Boost单元测试库。
内容的提问来源于stack exchange,提问作者Omar
相关产品推荐
相关产品推荐

