加入收藏 | 设为首页 | 会员中心 | 我要投稿 莱芜站长网 (https://www.0634zz.com/)- 云连接、建站、智能边缘云、设备管理、大数据!
当前位置: 首页 > 综合聚焦 > Ubuntu > 正文

ubuntu – 如何链接到cppunit?

发布时间:2020-07-16 12:37:49 所属栏目:Ubuntu 来源:互联网
导读:我想我在这里错过了一些非常愚蠢的东西. 我安装了libcppunit :(我使用的是Ubuntu 12.04) $apt-cache policy libcppunit-dev libcppunit-dev: Installed: 1.12.1-4 Candidate: 1.12.1-4 Version table: *** 1.12.1-4 0 500 http:

我想我在这里错过了一些非常愚蠢的东西.

我安装了libcppunit :(我使用的是Ubuntu 12.04)

$apt-cache policy libcppunit-dev 
libcppunit-dev:
  Installed: 1.12.1-4
  Candidate: 1.12.1-4
  Version table:
 *** 1.12.1-4 0
        500 http://archive.ubuntu.com/ubuntu/ precise/main amd64 Packages
        100 /var/lib/dpkg/status

$apt-cache policy libcppunit-1.12-1 
libcppunit-1.12-1:
  Installed: 1.12.1-4
  Candidate: 1.12.1-4
  Version table:
 *** 1.12.1-4 0
        500 http://archive.ubuntu.com/ubuntu/ precise/main amd64 Packages
        100 /var/lib/dpkg/status

我有一个简单的测试:

#include <iostream>

#include <cppunit/ui/text/TestRunner.h>
#include <cppunit/CompilerOutputter.h>
#include <cppunit/TestFixture.h>
#include <cppunit/extensions/HelperMacros.h>

int main() {
    CppUnit::Test* suite = CppUnit::TestFactoryRegistry::getRegistry().makeTest();

    CppUnit::TextUi::TestRunner runner;
    runner.addTest(suite);
    runner.setOutputter(new CppUnit::CompilerOutputter(&runner.result(),std::cerr));

    return runner.run() ? 0 : 1;
}

我这是编译器输出:

$g++ -lcppunit -o test.bin test.cpp 
/tmp/ccoQDuGC.o: In function `main':
test.cpp:(.text+0x36): undefined reference to `CppUnit::TestFactoryRegistry::getRegistry(std::basic_string<char,std::char_traits<char>,std::allocator<char> > const&)'
test.cpp:(.text+0x75): undefined reference to `CppUnit::TextTestRunner::TextTestRunner(CppUnit::Outputter*)'
test.cpp:(.text+0x8b): undefined reference to `CppUnit::TestRunner::addTest(CppUnit::Test*)'
test.cpp:(.text+0x9a): undefined reference to `CppUnit::TextTestRunner::result() const'
test.cpp:(.text+0xe2): undefined reference to `CppUnit::CompilerOutputter::CompilerOutputter(CppUnit::TestResultCollector*,std::basic_ostream<char,std::char_traits<char> >&,std::basic_string<char,std::allocator<char> > const&)'
test.cpp:(.text+0xf4): undefined reference to `CppUnit::TextTestRunner::setOutputter(CppUnit::Outputter*)'
test.cpp:(.text+0x150): undefined reference to `CppUnit::TextTestRunner::run(std::basic_string<char,std::allocator<char> >,bool,bool)'
test.cpp:(.text+0x189): undefined reference to `CppUnit::TextTestRunner::~TextTestRunner()'
test.cpp:(.text+0x227): undefined reference to `CppUnit::TextTestRunner::~TextTestRunner()'
collect2: ld returned 1 exit status

为了确保这些库确实存在于/usr/lib下

$ls /usr/lib/ | grep cppunit
libcppunit-1.12.so.1
libcppunit-1.12.so.1.0.0
libcppunit.a
libcppunit.la
libcppunit.so

我错过了什么导致了这个?

在告诉编译器要编译哪些文件之后,你必须告诉编译器要链接哪些库.
g++ test.cpp -lcppunit -o test.bin

(编辑:莱芜站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读