ошибка компоновщика при использовании wxwidgets с cmake - PullRequest
1 голос
/ 19 сентября 2010

Я получаю следующую ошибку компоновщика при компиляции моей программы с решением VS2008, созданным с помощью CMake для моего приложения на основе wxwidgets.

ошибка LNK2019: неразрешенный внешний символ _main, на который ссылается функция ___ tmainCRTStartup

но я могу скомпилировать ту же программу с обычным решением VS2008, которое не создано с помощью CMake.

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 Ответ

1 голос
/ 20 сентября 2010

Вам нужно сделать его исполняемым для Win32, используя следующую строку add_executable?

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

Кроме того, если вы используете достаточно свежий CMake, вам не нужно использовать ALL_CAPS_EVERYWHERE больше.

...