【问题标题】:Code::Blocks & WxWidgets Matching Release configurationCode::Blocks & WxWidgets 匹配发布配置
【发布时间】:2020-05-16 17:08:19
【问题描述】:

我正在尝试在 Windows (10) 上使用 WxWidgets (v3.1.3) 在 Code:: Blocks (v17.12) 中启动一个新项目。

(对于上下文,我是编译新手-我是一名脚本编码员,试图分支。所以...不要害怕像我是个白痴一样跟我说话。我准备接受这种可能性。)

我下载了官方的3.1.3源码,扩展为“D:\code\wxw” 我使用 Code::Blocks 附带的 mingw32-make 成功编译了它——有一个目录“D:\code\wxw\build\msw\gcc_mswudll”和“D:\code\wxw\lib\gcc_dll”,即后者包含 .dll 文件。

所以我进入代码块,然后我:

创建新项目 -> wxWidgets 项目 选择 wxWidgets 3.1.x 项目标题“HelloWorld”,位于 D:\code\C++\tinker 下——其他所有内容都自动填充。 项目详情——我的信息。

首选 GUI 生成器 - 无。应用程序类型 - 对话框。

wxWidgets 的位置:D:\code\wxw

编译器:GNU GCC 选择“创建发布配置”,因为它是这样编译的。

它提供了“bin\Release\”的输出目录和“obj\Release\”的对象输出目录,我没有更改。

选择使用 DLL,构建为整体,并启用 Unicode——后者与我的编译设置匹配。

当我点击下一步时,它告诉我“在您指定的 wxWidgets 目录中找不到匹配的发布配置。这意味着您的项目的发布目标不会构建。”

我在搜索此错误消息时发现了多次点击,但它们都转入了对单片与多片编译的讨论以及对其他编译器设置的批评,并没有真正解决问题。

编辑:

基于http://wiki.codeblocks.org/index.php?title=WxWindowsQuickRef

我使用以下设置进行编译。我将它们设置在 config.gcc 中

BUILD=release SHARED=1 MONOLITHIC=1 UNICODE=1 CXXFLAGS=-fno-keep-inline-dllexport

【问题讨论】:

  • 您传递给 mingw32-make 的选项与您在向导中指定的设置不匹配。您能否发布用于构建库的完整 mingw32-make 命令。
  • mingw32-make.exe -f makefile.gcc BUILD=release SHARED=1 MONOLITHIC=1 UNICODE=1 CXXFLAGS=-fno-keep-inline-dllexport 是您正在寻找的数据,但我实际上在 config.gcc 中改变了
  • @CatherSteincamp,供您将来参考 - 在(仍然)受支持的情况下使用 MONOLITHIC=1 从长远来看可能会给您带来问题。避免它更好也更容易。而且它不会给你任何收益。使用 SHARED=1 也有点奇怪 - 通常在 Windows 上首选静态构建,因为这样您就不必在程序中单独提供 wxWidgets 库。

标签: codeblocks wxwidgets


【解决方案1】:

向导最重要的页面是第 8 页。根据您上面提供的设置,它应该看起来完全像这样:

另外,我将在代码块中定义一个名为 wx 的全局变量,而不是在第 6 页上给出路径:

然后在第 6 页,您将输入 $(#wx) 而不是实际路径。如果您升级 wxWidgets 库,这将使您的项目更容易使用。您只需要更改全局变量设置中的位置。

【讨论】:

  • 第 8 页与图片一模一样。另一方面,使用 $(#wx) 似乎是修复它的原因。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-30
  • 2013-02-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多