4 Stimmen

Undefined reference to WinMain@16 beim Verwenden von Boost mit MinGW

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?

4voto

Billy ONeal Punkte 100691

Es sieht so aus, als hätten Sie keine main-Methode. Sie können eine erstellen, indem Sie BOOST_TEST_MAIN verwenden. BOOST_TEST_MODULE definiert nur main, wenn und nur wenn BOOST_TEST_DYN_LINK bereits definiert ist.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X