未定义参考使用boost使用MinGW时的WinMain @ 16 [英] undefined reference to WinMain@16 when using boost with MinGW

查看:324
本文介绍了未定义参考使用boost使用MinGW时的WinMain @ 16的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在Windows 7下的C ++与Eclipse编程。

I'm programming in C++ with Eclipse under Windows 7.

我的makefile文件如下:

My makefile is as follows:

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"

当我这样做使构建让EXEC 一切工作正常。然而,当使用做测试我得到未定义引用'的WinMain @ 16'。在唯一的文件测试/ 是这其中,使用升压转换器的单元测试框架:

When I do make build or make exec everything works fine. However, when using make test I get undefined reference to 'WinMain@16'. The only file under test/ is this one, using boost's unit test framework:

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

#include <Chunk.h>
using namespace CacheOpt;

BOOST_AUTO_TEST_CASE( getChunks )
{
    Chunk::setSize(10);
    BOOST_CHECK_EQUAL(Chunk::getSize(), 11);
}

我怎样才能解决这个问题?

How can I resolve this error?

推荐答案

看起来你没有一个方法。可以使用 BOOST_TEST_MAIN 创建一个。 BOOST_TEST_MODULE 只定义了当且仅当 BOOST_TEST_DYN_LINK 已经定义。

It looks like you don't have a main method. You can create one using BOOST_TEST_MAIN. BOOST_TEST_MODULE only defines main if and only if BOOST_TEST_DYN_LINK is already defined.

这篇关于未定义参考使用boost使用MinGW时的WinMain @ 16的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆