ошибка компоновщика при использовании wxwidgets с cmake

Я получаю следующую ошибку компоновщика, когда компилирую свою программу с решением 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.

Любая помощь приветствуется.


person harik    schedule 19.09.2010    source источник
comment
Сделайте отступ кода с четырьмя пробелами, чтобы получить monospace_font.   -  person Jack Kelly    schedule 20.09.2010


Ответы (1)


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

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

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

person Jack Kelly    schedule 19.09.2010