Ich programmiere in C++ mit Eclipse unter Windows 7.
Mein Makefile sieht wie folgt aus:
build:
g++ -shared -o "lib\libCacheOpt.a" "src\*.cpp" -enable-auto-import -I"${CWD}\include" -I"${BOOST}" -L"${BOOST}\lib" -lboost_program_options -lboost_unit_test_framework
exec: build
g++ "src\main.cpp" -enable-auto-import -I"${CWD}\include" -L"${CWD}\lib" -I"${BOOST}" -L"${BOOST}\lib" -lCacheOpt -lboost_program_options -o Simulator.exe
test: build
g++ "test\unit\*.cpp" -enable-auto-import -I"${CWD}\include" -L"${CWD}\lib" -I"${BOOST}" -L"${BOOST}\lib" -lmingw32 -lCacheOpt -lboost_unit_test_framework -o run_tests.exe
clean:
rm Simulator.exe
rm "lib\libCacheOpt.a"
Wenn ich make build
oder make exec
benutze, funktioniert alles einwandfrei. Wenn ich jedoch make test
verwende, erhalte ich undefinierter Verweis auf 'WinMain@16'
. Die einzige Datei unter test/
ist diese hier, die das Boost-Unit-Test-Framework verwendet:
#define BOOST_TEST_MODULE ChunkTest
#include
#include
using namespace CacheOpt;
BOOST_AUTO_TEST_CASE( getChunks )
{
Chunk::setSize(10);
BOOST_CHECK_EQUAL(Chunk::getSize(), 11);
}
Wie kann ich diesen Fehler beheben?