【问题标题】:linker error using wxwidgets with cmake使用带有 cmake 的 wxwidgets 的链接器错误
【发布时间】:2011-04-14 09:50:13
【问题描述】:

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

错误 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 构建系统让我的应用程序跨平台运行。

感谢任何帮助。

【问题讨论】:

  • 用四个空格缩进代码得到monospace_font

标签: cross-platform wxwidgets cmake linker-errors


【解决方案1】:

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

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

此外,如果您使用的是相当新的 CMake,则不必再使用 ALL_CAPS_EVERYWHERE

【讨论】:

    猜你喜欢
    • 2020-09-12
    • 2016-04-18
    • 1970-01-01
    • 1970-01-01
    • 2015-12-26
    • 2011-08-23
    • 2015-05-25
    • 2023-01-27
    • 1970-01-01
    相关资源
    最近更新 更多