2010-09-19 39 views
1

当我使用VS2008解决方案编译我的程序时,出现以下链接器错误,该解决方案使用基于wxwidgets的应用程序的CMake创建。使用wxwidgets与cmake的链接器错误

错误LNK2019:无法解析的外部符号_main函数___tmainCRTStartup

引用,但我能够与未与CMake的创建一个正常的VS2008的解决方案来编译相同的程序。

cmakelists.txt文件内容:

cmake_minimum_required(VERSION 2.8) 

SET(CMAKE_DEBUG_POSTFIX "d") 

ADD_DEFINITIONS(-DOSG_DEBUG_POSTFIX="${CMAKE_DEBUG_POSTFIX}") 

SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin) 

SET(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin) 

SET(ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) 

SET(RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) 

set(BOOST_ROOT "E:/boost_1_38_0") 

FIND_PACKAGE(Boost 1.38.0 REQUIRED unit_test_framework) 

SET(wxWidgets_ROOT_DIR "E:/wxWidgets-2.9.0") 

find_package(wxWidgets COMPONENTS aui html adv core xml base REQUIRED) 

INCLUDE(${wxWidgets_USE_FILE}) 

ADD_EXECUTABLE(browser 
BrowserApp.cpp 
BrowserApp.h 
BrowserMain.cpp 
BrowserMain.h 
) 

TARGET_LINK_LIBRARIES(browser 
common 
${wxWidgets_LIBRARIES} 
) 

我试图让整个使用的CMake构建系统平台,我的应用程序运行。

任何帮助表示赞赏。

+1

具有四个空格的缩进代码以获得'monospace_font'。 – 2010-09-19 21:06:21

回答

1

您是否需要通过使用以下add_executable行来使其成为Win32可执行文件?

add_executable(browser WIN32 BrowserApp.cpp BrowserApp.h BrowserMain.cpp BrowserMain.h) 

此外,如果您使用的是比较新的CMake,你不必使用ALL_CAPS_EVERYWHERE了。

+0

它为我工作。非常感谢。 – harik 2010-09-20 04:34:34