2010-09-19 67 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