Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/155.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 从linux在C::B上交叉编译以赢得wxwidgets小姐代码?_C++_Linux_Wxwidgets_Codeblocks - Fatal编程技术网

C++ 从linux在C::B上交叉编译以赢得wxwidgets小姐代码?

C++ 从linux在C::B上交叉编译以赢得wxwidgets小姐代码?,c++,linux,wxwidgets,codeblocks,C++,Linux,Wxwidgets,Codeblocks,在Ubuntu13.10和x86上,使用代码块,我成功地使用minigw从unix交叉编译到Windows。在windows上测试并获得一个控制台 它不适用于wxwidgets。在ubuntu下运行良好,但它不会为minigw编译器编译wxwidgets 我已经做到了这一点:控制台工作 但不适用于wxwidgets。它抛出了如下错误: -------------- Build: Release in testwindows (compiler: MiniGW compiler for windo

在Ubuntu13.10和x86上,使用代码块,我成功地使用minigw从unix交叉编译到Windows。在windows上测试并获得一个控制台

它不适用于wxwidgets。在ubuntu下运行良好,但它不会为minigw编译器编译wxwidgets

我已经做到了这一点:控制台工作

但不适用于wxwidgets。它抛出了如下错误:

-------------- Build: Release in testwindows (compiler: MiniGW compiler for windows)---------------

i586-mingw32msvc-g++ -I/usr/lib/i386-linux-gnu/wx/include/gtk2-unicode-release-2.8 -I/usr/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D__WXGTK__ -pthread  -Wall  -O2  -DWINVER=0x0400 -D__WIN95__ -D__GNUWIN32__ -DSTRICT -DHAVE_W32API_H -D__WXMSW__ -D__WINDOWS__   -I/usr/i586-mingw32msvc/include  -c /data1/backup_config/codeblocks/Learn/testwindows/testwindowsApp.cpp -o obj/Release/testwindowsApp.o
i586-mingw32msvc-g++: unrecognized option '-pthread'
In file included from /usr/include/wx-2.8/wx/platform.h:293,
                 from /usr/include/wx-2.8/wx/defs.h:21,
                 from /usr/include/wx-2.8/wx/event.h:15,
                 from /usr/include/wx-2.8/wx/app.h:20,
                 from /data1/backup_config/codeblocks/Learn/testwindows/testwindowsApp.h:13,
                 from /data1/backup_config/codeblocks/Learn/testwindows/testwindowsApp.cpp:10:
/usr/include/wx-2.8/wx/chkconf.h:23:30: error: wx/msw/chkconf.h: No such file or directory
引发错误时的源代码:

#elif defined(__WXMSW__)
#  include "wx/msw/chkconf.h"
#elif defined(__WXMAC__)
所以,我检查了/usr/include/wx/chkconfig.h上的一个文件chkconf.h,它就存在了。但是,默认情况下,中的代码块包括“wx/msw/chkconf.h”

如何使用CodeBlocks和wxwidgets 2.8解决此问题以正确交叉编译


也许对你来说太晚了,但这肯定会帮助其他人。好了,就这样

首先,必须安装正确的工具链(转到端子并键入):

然后,您需要使用windows工具链在Ubuntu上编译wxWidgets的“windows”版本。这适用于当前的wxWidgets版本(3.0),但也适用于以前的版本。我还假设:

  • wxWidgets的源代码安装在主目录(~/wxWidgets-3.0.0)中
  • 有一个目录可以在~/LocalLibs/wx-3.0.0_-win中存储库
  • 如果愿意,您可以更改版本/路径,相应地修改下面的命令
  • 所有要编译的工具(gcc和库)都已安装
因此,过程如下(在终端窗口上):

然后,您可以检查是否一切顺利:

"$HOME/LocalLibs/wx-3.0.0_win/bin/wx-config" --host=i586-mingw32msvc --static --cxxflags  --debug=yes --unicode=yes --version=3.0
如果一切正常,它将显示与wxWidgets交叉编译所需的库

最后是C::B部分(我个人更喜欢Codelite,但无论如何)。首先,创建一个新的编译器选项(设置->编译器)并复制或重命名其中一个

然后,转到“工具链可执行文件”并设置如下:

C Compiler:         i586-mingw32msvc-gcc
C++ Compiler:       i586-mingw32msvc-g++
Linker dynamic:     i586-mingw32msvc-g++
Linker static:      i586-mingw32msvc-ar
Resource compiler:  `~/LocalLibswx-3.0.0_win/bin/wx-config --host=i586-mingw32msvc --rescomp`
最后,在“搜索目录”中:


我想就这些了。之后,您应该能够使用新的交叉编译器使用wxWdigets进行编译,并在Ubuntu中轻松愉快地生成windows可执行文件。

如果平台无法支持编译器,则进行交叉编译。交叉编译到windows只是无缘无故地让自己头疼。所以不要这样做:在windows上为windows编译。非常好的教程和指南。但是,它在
--host=i586-mingw32msvc
@MarinSagovac上失败了。您确定安装了mingw32吗?你有哪个CPU?请检查一下/usr下某个*mingw32目录的名称好吗?在命令的--host=部分中使用该目录名。
"$HOME/LocalLibs/wx-3.0.0_win/bin/wx-config" --host=i586-mingw32msvc --static --cxxflags  --debug=yes --unicode=yes --version=3.0
C Compiler:         i586-mingw32msvc-gcc
C++ Compiler:       i586-mingw32msvc-g++
Linker dynamic:     i586-mingw32msvc-g++
Linker static:      i586-mingw32msvc-ar
Resource compiler:  `~/LocalLibswx-3.0.0_win/bin/wx-config --host=i586-mingw32msvc --rescomp`
Compiler:       /usr/i586-mingw32msvc/include/
Linker:         /usr/i586-mingw32msvc/lib/
Resource:       /usr/i586-mingw32msvc/include/