【问题标题】:Header file not found while cross-compiling wxWidgets "Welcome" Cpp交叉编译 wxWidgets“欢迎”Cpp 时找不到头文件
【发布时间】:2021-04-15 19:26:06
【问题描述】:

在尝试交叉编译标准 wxWidgets 程序时,它总是说找不到 wx/button.h 头文件。一点点信息:该程序是在 Code::Blocks 中创建的,我在 linux 上编译了 wx 库,从 ide 运行它时,它工作正常,但由于某种原因,我无法使用 mingw-w64 交叉编译它(使用程序目录中的“x86_64-w64-mingw32-gcc [程序名称].cpp”命令。有人可以帮我解决这个问题吗? 提前致谢。

【问题讨论】:

  • 这意味着您必须修复交叉编译的包含路径。
  • 我知道,但是否有像我可以编辑的配置文件或有特定的参数?在 code::blocks 中,使用相同的编译器,它可以工作。

标签: c++ linux cross-compiling wxwidgets mingw-w64


【解决方案1】:

您必须让编译器包含 wxWidgets。我个人使用一些自动生成的(脚本)变体进行编译:

clang++ -std=c++17 *.cpp $(wx-config --cxxflags --libs) -o prog
  # on Unix-like systems(here: MacOS)

wx-config 是输出 wxWidgets 所需的编译器设置的命令。在安装/编译 wxWidgets 之后,它应该已经存在于某个地方。如果您不是通过 shell(终端)编译应用程序,您可以打开终端(基于您的标签 cmd?)并键入所需的命令。然后复制粘贴输出。

【讨论】:

  • 我明天试试,我在基于 Arch 的 Linux 上的标准 KDE 终端中编译它。希望它有效:
  • 我只是想因为有一个包含所有需要的标题及其位置的文件,所以不需要额外的参数,我必须承认,这是我第一次在终端中使用 mingw,我以前一直在我的ide中使用它。在 Linux 上编译源代码方面,我几乎总是使用 cmake。我会评论它是否有效,当我明天尝试时
  • @PressAnyKey 这不仅仅是显示编译器头文件。它还显示了源代码(.cpp-files)和某些平台所需的其他一些东西。
  • 我试过后,它告诉我:: clang++ -std=c++17 chiffrewxMain.cpp $(wx-config --cxxflags --libs) -o prog /usr/sbin/ld: /usr/sbin/../lib64/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../lib64/Scrt1.o: in function _start': (.text+0x24): undefined reference to main' clang-11: error: linker command failed with exit code 1 (use -v to see invocation)
  • 在尝试之前,我进入了 wxWidgets 源代码目录并运行了这个 './configure --target x86_64-w64-mingw32 --prefix /usr/x86_64-w64-mingw32'
猜你喜欢
  • 1970-01-01
  • 2021-12-03
  • 1970-01-01
  • 2018-01-14
  • 1970-01-01
  • 2020-09-23
  • 2014-02-02
  • 1970-01-01
  • 2011-12-17
相关资源
最近更新 更多