gpt4 book ai didi

c++ - Boost.test找不到main

转载 作者:行者123 更新时间:2023-12-02 19:36:12 24 4
gpt4 key购买 nike

我正在 kubuntu 12.04 上使用 gcc 4.8、boost 1.59。

我写了一个简单的main.cpp文件:

#define BOOST_TEST_MODULE My_Module
#include <boost/test/unit_test.hpp>

BOOST_AUTO_TEST_CASE( foo )
{}

当我构建时这不起作用

g++ -std=c++11 main.cpp -I/usr/local/include -L/usr/local/lib -lboost_unit_test_framework -o test

我收到一堆链接器错误:

/usr/lib/x86_64-linux-gnu/crt1.o: In function `_start':
(.text+0x20): undefined reference to 'main'
/tmp/cc57ppN0.o: In function `__static_initialization_and_destruction_0(int, int)':
main.cpp:(.text+0x131): undefined reference to `boost::unit_test::ut_detail::auto_test_unit_registrar::auto_test_unit_registrar(boost::unit_test::test_case*, unsigned long)'
/tmp/cc57ppN0.o: In function `boost::unit_test::make_test_case(boost::unit_test::callback0<boost::unit_test::ut_detail::unused> const&, boost::unit_test::basic_cstring<char const>)':
main.cpp:(.text._ZN5boost9unit_test14make_test_caseERKNS0_9callback0INS0_9ut_detail6unusedEEENS0_13basic_cstringIKcEE[_ZN5boost9unit_test14make_test_caseERKNS0_9callback0INS0_9ut_detail6unusedEEENS0_13basic_cstringIKcEE]+0x6d): undefined reference to `boost::unit_test::test_case::test_case(boost::unit_test::basic_cstring<char const>, boost::unit_test::callback0<boost::unit_test::ut_detail::unused> const&)'
collect2: erreur: ld a retourné 1 code d'état d'exécution

对“main”的 undefined reference 是什么意思???好吧,我知道这是因为它找不到 main() 但为什么呢? AFAIK 我的文件的语法是正确的。它应该链接,不是吗?

最佳答案

您需要在main.cpp顶部插入以下指令:

#define BOOST_TEST_DYN_LINK

Boost.test 文档中的示例似乎仅适用于静态链接:但是,动态链接需要上面的指令。

参见例如C++ Unit Testing With Boost.Test了解更多详情。

关于c++ - Boost.test找不到main,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33644914/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com