我正在使用 wxWidgets 库版本 3.0.2 开发 Cmake 项目,当我在 Linux 上构建可执行文件时,我得到以下信息:
undefined reference to `wxGrid::...`
undefined reference to `wxPGProperty::...`
и тогдалее по всем используемым функциям
早先出现了类似的错误,但是通过在搜索中添加 wxWidgeta 模块 - adv 和 propgrid 来消除它们。该项目由几个库和一个可执行文件组成,这些库的构建没有问题,尽管其中没有使用这些控件。可执行文件的 CMakeList:
project(Test)
set(HEADER CMakeLists.txt
test.h
myMath.h)
set(SOURCE test.cpp
myMath.cpp)
find_package(wxWidgets COMPONENTS core base adv propgrid )
include(${wxWidgets_USE_FILE})
add_executable( ${PROJECT_NAME} ${HEADER} ${SOURCE} )
target_include_directories( ${PROJECT_NAME} PRIVATE
${TEST_LIB1_DIR}
${TEST_LIB2_DIR})
target_link_libraries( ${PROJECT_NAME}
${wxWidgets_LIBRARIES}
Lib1
Lib2 )
set_target_properties( ${PROJECT_NAME} PROPERTIES
RUNTIME_OUTPUT_DIRECTORY_DEBUG ${TEST_DIR}
RUNTIME_OUTPUT_DIRECTORY_RELEASE ${TEST_DIR} )
我只是无法弄清楚可能是什么问题(可能在 CMakeList 中)。我在 Internet 上发现了类似的问题,但这些问题的答案归结为 Linux 上存在这些库(adv 和 propgrid)。是的,它们在文件夹中:
wxWidgets-3.0.2/debug/lib
整个问题是我的注意力不集中......连接了新库后,我忘记查看 CMakeList 中连接的 wxWidgets 模块