Linuxで単体テスト(ブースト)をコンパイルしようとしていますが、コンパイラーがエラーを起こします。誰かが私のコマンドをチェックできますか?
g++ -o UTest ../UTest/UT1.cpp ../UTest/UT2.cpp -lboost_system -lboost_thread -lboost_unit_test_framework
エラー
/usr/lib/gcc/i686-linux-gnu/4.6/../../../i386-linux-gnu/crt1.o: In function `_start':
(.text+0x18): undefined reference to `main'
main()
使用時に使用すべきではないため、g++comandから削除しましたboost unit test
。
どうしたの?
PSユニットテストなしのプロジェクト(ありmain()
)は正常にコンパイルされます。Windowsでの単体テストも正常に機能します。
アップデート
の問題main()
は解決されました。しかし、新しいものが生まれました。
UT1.cpp
とUT2.cpp
が含まれてUTCommon.h
いますが、今は次のようなエラーがたくさんあります
エラー
tmp2.cpp:(.text+0xd44a): multiple definition of `boost::unit_test::unit_test_log_t::operator<<(boost::unit_test::lazy_ostream const&)'
/tmp/cc0jw8uR.o:tmp.cpp:(.text+0xd44a): first defined here
/tmp/cctLn9QJ.o: In function `boost::test_tools::tt_detail::equal_impl(char const*, char const*)'
UTCommon.h
#ifndef UT_COMMON_H
#define UT_COMMON_H
#ifndef BOOST_TEST_MODULE
#define BOOST_TEST_MODULE UnitTest
#endif
#if defined (__GNUC__) && defined(__unix__)
#include <boost/test/included/unit_test.hpp>
#elif defined (WIN32)
#include <boost/test/unit_test.hpp>
#endif
#endif