C++ 使用Boost构建单元测试时发生链接器错误

C++ 使用Boost构建单元测试时发生链接器错误,c++,unit-testing,c++11,gcc,boost,C++,Unit Testing,C++11,Gcc,Boost,我正在使用GCC4.8.2和Boost1.59。我用Kubuntu 12.04 LTS跑步。我正试图编写一个简单的单元测试应用程序,但遇到了链接器错误 这是我的密码: main.cpp #define BOOST_TEST_MODULE My Module #define BOOST_TEST_DYN_LINK #include <boost/test/unit_test.hpp> #define BOOST_TEST_DYN_LINK #include <boost/tes

我正在使用GCC4.8.2和Boost1.59。我用Kubuntu 12.04 LTS跑步。我正试图编写一个简单的单元测试应用程序,但遇到了链接器错误

这是我的密码:

main.cpp

#define BOOST_TEST_MODULE My Module
#define BOOST_TEST_DYN_LINK
#include <boost/test/unit_test.hpp>
#define BOOST_TEST_DYN_LINK
#include <boost/test/unit_test.hpp>

BOOST_AUTO_TEST_SUITE( suite1 );
BOOST_AUTO_TEST_CASE( case1 )
{
    BOOST_TEST_MESSAGE( "Hello!" );
}
BOOST_AUTO_TEST_SUITE_END();
你知道我做错了什么吗?谢谢

多米尼克

编辑


所给予的不能解决我的问题…:-(

我也遇到了同样的问题。我的解决方案是,更改包含路径:

#include <boost/test/unit_test.hpp> // wrong  
#include <boost/test/included/unit_test.hpp> // this work
#包含//错误
#包括//这项工作

我在的第一个示例中找到了解决方案。我使用boost 1.60和gcc 4.8.5对其进行了测试,添加了
-D_GLIBCXX_USE_cx11_ABI=0
编译选项为我解决了这个问题在编辑部分发布的链接中尝试了该解决方案后,您可以发布编译命令吗?@jayant我认为它“成功”命令:
g++-I/usr/local/include-o test main.cpp-L/usr/local/lib-Wl,-Bdynamic-lboost\u unit\u test\u framework
。同样的错误。看起来缺少了一些东西。作者使用的是Boost 1.52,我使用的是1.59。我自己根据源代码构建了它……我很困惑,因为几年前我可以用以前的版本o轻松构建测试f Boost。我不是说1.59有bug,而是说我的1.59安装可能是错误的???我找到了解决方案,请参阅。这对我使用Boost 1.58和Ubuntu 16.04.3 LTS上的SunPro编译器V 12.5有帮助。对我来说也很有效,但对于一个文件,编译时间增加了10倍!
#include <boost/test/unit_test.hpp> // wrong  
#include <boost/test/included/unit_test.hpp> // this work