wxWidgets 如何使用代码块从 Linux 交叉编译适用于 Windows 的应用程序



我想使用代码块IDE交叉编译一个用于Linux的wxWidgets应用程序。

我已经通读了这些说明,其中提供了一些有用的信息,但这些说明不包括代码块。

这些是我在 Ubuntu 13.10 上遵循的步骤(Saucy Salamander)

更新系统并安装 mingw32 和 wine:

sudo apt-get update && sudo apt-get upgrade
sudo apt-get install mingw32 wine

从源代码安装 wxWidgets 2.8:

sudo su -
cd /opt
wget http://downloads.sourceforge.net/project/wxwindows/2.8.12/wxWidgets-2.8.12.tar.gz
tar -xvzf wxWidgets-2.8.12.tar.gz
cd wxWidgets-2.8.12/
./configure --prefix=/usr/local/i586-mingw32 --host=i586-mingw32msvc --build=i686-linux --disable-shared --enable-unicode
make
make install

安装代码块

sudo apt-get install codeblocks codeblocks-contrib

打开代码块,然后按如下方式设置:

Settings > Compiler > 
   Selected Compiler > GNU GCC Compiler > Copy > New Compiler Name : MinGW Compiler
   Selected Compiler > MinGW Compiler
   Search Directories > Compiler > Add : /usr/i586-mingw32msvc/include/
   Search Directories > Linker > Add : /usr/i586-mingw32msvc/lib/
   Search Directories > Resource Compiler > Add : /usr/i586-mingw32msvc/include/
   Toolchain Executables >
       Program Files >
           Compilers Installation Directory : /usr/i586-mingw32msvc/
           C Compiler : i586-mingw32msvc-gcc
           C++ Compiler : i586-mingw32msvc-g++
           Dynamic Linker : i586-mingw32msvc-g++
           Static Linker : i586-mingw32msvc-ld
      Additional Paths : /usr/bin
Compiler Settings >  Other Options : `/usr/local/i586-mingw32/bin/wx-config --cxxflags` 
Linker Settings > Other Options : `/usr/local/i586-mingw32/bin/wx-config --libs` 

现在在代码块中创建一个新项目,关键字段如下:

New Project > wXWidgets Project
    wXWidgets > 2.8.x
    Preferred GUI Builder > wxSmith
    Compiler > MinGW Compiler

在代码块中,单击编译 - 这将设置我们在下一步中需要的应用程序输出文件夹。

在终端窗口中,将所需的mingwm10.dll复制到输出文件夹:

cd <your applications Debug folder>
cp /usr/share/doc/mingw32-runtime/mingwm10.dll.gz .
gunzip mingwm10.dll.gz

现在用葡萄酒运行:

wine ./youappname

若要在 Windows 计算机上运行应用程序,请将 mingwm10.dll 和 appname 可执行文件复制到 Windows 计算机。 重命名应用名称以使其后缀.exe。 双击运行。

最新更新