簡體   English   中英

使用 WxWidgets 和柯南的未定義符號

[英]Undefined symbols using WxWidgets and Conan

我正在嘗試采用柯南 C++ package 經理。 我已經按照入門指南成功地讓它與大多數項目一起工作。 但是,我遇到了似乎無法修復的 WxWidgets 鏈接問題。

linker 錯誤:

[ 23%] Linking CXX executable ../bin/wx_sample
Undefined symbols for architecture x86_64:
  "Frame::onMenuFileQuit(wxCommandEvent&)", referenced from:
      __GLOBAL__sub_I_frame.cpp in frame.cpp.o
  "Frame::onMenuFileSave(wxCommandEvent&)", referenced from:
      __GLOBAL__sub_I_frame.cpp in frame.cpp.o
  "Frame::onMenuFileAbout(wxCommandEvent&)", referenced from:
      __GLOBAL__sub_I_frame.cpp in frame.cpp.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [bin/wx_sample] Error 1
make[1]: *** [src/CMakeFiles/wx_sample.dir/all] Error 2
make: *** [all] Error 2

柯南文件.txt

[requires]
wxwidgets/3.1.4@bincrafters/stable

[generators]
cmake

CmakeFile.txt - 項目根目錄 -

cmake_minimum_required(VERSION 3.17)
project(wx_sample)

set(CMAKE_CXX_STANDARD 17)
include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
conan_basic_setup()

include_directories(src)

add_subdirectory(src)

CmakeFile.txt -- src 文件夾 --

set(BINARY ${CMAKE_PROJECT_NAME})
file(GLOB_RECURSE SOURCES LIST_DIRECTORIES true *.h *.cpp)
set(SOURCES ${SOURCES})

add_executable(${BINARY} ${SOURCES})
target_link_libraries(${BINARY} ${CONAN_LIBS})

柯南默認配置文件:

Configuration:
[settings]
arch=x86_64
arch_build=x86_64
build_type=Release
compiler=apple-clang
compiler.libcxx=libc++
compiler.version=12.0
os=Macos
os_build=Macos

我不確定是否需要將 deps 包含到我的 conanfile 中,盡管我認為 Conan 會自動管理它? 如果我刪除錯誤中列出的違規部分,則應用程序鏈接成功。

編輯:您在CONAN_LIBS全球范圍內是對的。 您的 CMake 結構看起來不錯。 您可以嘗試從src CMakeLists.txt 調用conan_basic_setup()

如果這不起作用,問題可能出在您的conanfile.py中。 https://github.com/bincrafters/conan-wxwidgets/commit/37b6669229ec0e68593065a700c360d23a914bac

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM