我刚刚使用sudo apt-get
安装了Boost。之后,我编写了下面的代码来测试我在"first_n_follow.h">
#include<iostream>
#include<string.h>
#include<vector>
#include<algorithm>
#include<set>
#include<map>
#include "first_n_follow.h"
#define BOOST_TEST_MODULE MyTest
#include <boost/test/unit_test.hpp>
using namespace std;
BOOST_AUTO_TEST_CASE( my_test )
{
set<char> sample = {'b','c','d'};
map<char, set<char>> sample_map;
sample_map['a'] = sample;
BOOST_TEST(print_map(sample_map)==0);
}
遗憾的是,当我使用以下命令编译上面的文件first_n_follow_test.cpp
时:
g++ -o test.o first_n_follow_test.cpp
我得到以下错误:
/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o: in function `_start':
(.text+0x24): undefined reference to `main'
/usr/bin/ld: /tmp/ccefJDJt.o: in function `my_test_invoker()':
first_n_follow_test.cpp:(.text+0x100): undefined reference to `boost::unit_test::unit_test_log_t::set_checkpoint(boost::unit_test::basic_cstring<char const>, unsigned long, boost::unit_test::basic_cstring<char const>)'
后面跟着一个长堆栈跟踪。你知道问题出在哪里吗?
即使我将调用替换为我的代码并编写BOOST_TEST(0==0);
,它显示了同样的错误。任何帮助都是非常感谢的。
boost单元测试框架库链接缺失
g++ -o test.o first_n_follow_test.cpp -lboost_unit_test_framework
未定义的引用错误通常意味着在链接阶段缺少库或目标文件