windows跨平台开发环境配置

MinGW/MSYS development environment
Part 1: Setting up the base system
Index ..  Base system ..  Local packages ..  GTK+ ..  Qt .. Tools ..  Projects ..  Home .

The base system consist of the GCC compiler, the MinGW-w64 runtime, and MSYS utilities.

The compiler abd the runtime are provided by packages from the MinGW-builds project. MSYS provides a UNIX-like shell environment.

Installing the MinGW Installation Manager

We begin by installing the MinGW Installation Manager. This program will allows us to install MinGW and MSYS packages. The MSYS packages provide the shell and the necessary command line tools, but we will not use the Installation Manager to install the MinGW compiler suite.

Download the MingGW Installation Manager setup:

Run the installer. Click the Install button to accept the license and continue.


Specify the installation directory, the default C:\MinGW is usually approriate. Review the other options and click the Continue button to begin the installation.


Wait until the installation has finished and click the Continue button.

Installing MSYS packages

We use the MinGW Installation Manager to install MSYS packages:

Select Basic Setup on the left side of the screen. Mark the following packages to install:

  • mingw-developer-toolkit
  • msys-base
Make sure no other packages are marked.


Open the Installation menu and click Apply Changes.


Click the Apply button.


Patiently wait for the installation to complete.


Click the Close button upon completion.


Install a number of additional packages, select All Packages on the left of the screen and mark the following packages for installation:

  • msys-rxvt
  • msys-unzip
  • msys-wget
  • msys-zip
Note: in my installation, each package appeared multiple times. Select the top one.

Install the packages with the same procedure: open the Installation menu and click Apply Changes, click the Apply button, press the Close button upon completion.

Creating a desktop shortcut


Next, we create a new shortcut to launch the MSYS shell. CLick on the desktop with the right mouse button, select New -> Shortcut.

Set the location to C:\MinGW\msys\1.0\msys.bat, and call it MSYS Shell.


Right-click on the new shortcut and open its properties. Edit it so it looks like this:
  • Target: C:\MinGW\msys\1.0\msys.bat --rxvt
  • Start in: C:\MinGW\msys\1.0\bin
Press the  OK button.


Launch the MSYS Shell by double-clicking the shortcut.


You can paste clipboard text to the RXVT terminal with the shift+insert key combination, hence can copy the commands from this guide and paste them into the terminal window. If you use the mouse to select text in the RXVT window, it will be automatically copied to the clipboard as well.

Installing MinGW-w64

MinGW is a port of the GCC compiler to the win32 platform. MinGW-W64 adds 64-bit support and an improved windows runtime.

Before installing the compiler, a little bit of cleanup has to be done: the MinGW Installation Manager has put a number of packages into C:\MinGW\mingw32, rename it to C:\MinGW\mingw.dist.

mv /c/MinGW/mingw32 /c/MinGW/mingw.dist

Download the i686 package:

If you want to build 64-bit applications, you'll also need the x86_64 package:

Unzip the compiler packages into the C:\MinGW directory, you can use the 7-zip utility, or any archiver that understands the 7z format. You should and up with two new subdirectories: C:\MinGW\mingw32 and C:\MinGW\mingw64.

These packages support the win32 threading model and do not support C11 threading. Building GTK fails using the POSIX threading packages.

References:

Post-installation configuration

MSYS emulates a UNIX file system hierarchy. By default, the MSYS directory C:\MinGW\msys\1.0 will be mounted as root directory / and as /usr. Traditional windows drives like D: and E: can be accessed as /d or /e. Use the mount command to get an overview:

$ mount
C:\Users\Ingar\AppData\Local\Temp on /tmp type user (binmode,noumount)
C:\MinGW\msys\1.0 on /usr type user (binmode,noumount)
C:\MinGW\msys\1.0 on / type user (binmode,noumount)
c: on /c type user (binmode,noumount)
d: on /d type user (binmode,noumount)

Mount the installation directory of the custom compiler package in a convenient location:

mount 'C:\MinGW\mingw32\' /mingw32
mount 'C:\MinGW\mingw64\' /mingw64

We will add a number of extra directories to /etc/fstab, to be mounted whenever a new shell is started: /opt, where we will install a few extra packages, /sources, where downloads will be saved, /build32 where we will download the sourcode and compile packages, and /local32, where we will install our own compiled packages. These directories can be anywhere, but to keep the setup simple and consistent we will create C:\MinGW\optC:\MinGW\build32 and C:\MinGW\local32 and mount them as /opt/build32 and /local32.

Additionally, we create a 64-bit variant for each of the 32-bit directories. Note that the /sources directory is the same for both environments, this prevents having to download source packages twice.

Create the necessary directories:

mkdir /c/mingw/{opt,build32,local32,build64,local64,sources}

Mount the directories, this will automaticly add them to /etc/fstab:

umount /mingw
mount 'C:\MinGW' /mingw
mount 'C:\MinGW\opt\' /opt
mount 'C:\MinGW\local32\' /local32
mount 'C:\MinGW\build32\' /build32
mount 'C:\MinGW\local64\' /local64
mount 'C:\MinGW\build64\' /build64
mount 'C:\MinGW\sources\' /sources

Create necessary subdirectories in /local32/local64 and /opt:

mkdir /opt/bin /local{32,64}/{bin,etc,include,lib,share}
mkdir /local{32,64}/lib/pkgconfig

Create /local32/etc/profile.local:

cat > /local32/etc/profile.local << "EOF"
#
# /local32/etc/profile.local
#

alias dir='ls -la --color=auto'
alias ls='ls --color=auto'

PKG_CONFIG_PATH="/local32/lib/pkgconfig"
CPPFLAGS="-I/local32/include"
CFLAGS="-I/local32/include -mms-bitfields -mthreads -mtune=pentium3"
CXXFLAGS="-I/local32/include -mms-bitfields -mthreads -mtune=pentium3"
LDFLAGS="-L/local32/lib -mthreads"
export PKG_CONFIG_PATH CPPFLAGS CFLAGS CXXFLAGS LDFLAGS

PATH=".:/local32/bin:/mingw32/bin:/mingw/bin:/bin:/opt/bin"
PS1='\[\033[32m\]\u@\h \[\033[33m\w\033[0m\]$ '
export PATH PS1

# directory where sources will be downloaded
LOCALSOURCEDIR=/sources
# package build directory
LOCALBUILDDIR=/build32
# package installation prefix
LOCALDESTDIR=/local32
export LOCALBUILDDIR LOCALDESTDIR

EOF

Create /local64/etc/profile.local:

cat > /local64/etc/profile.local << "EOF"
#
# /local64/etc/profile.local
#

alias dir='ls -la --color=auto'
alias ls='ls --color=auto'

PKG_CONFIG_PATH="/local64/lib/pkgconfig"
CPPFLAGS="-I/local64/include"
CFLAGS="-I/local64/include -mms-bitfields -mthreads"
CXXFLAGS="-I/local64/include -mms-bitfields -mthreads"
LDFLAGS="-L/local64/lib"
export PKG_CONFIG_PATH CPPFLAGS CFLAGS CXXFLAGS LDFLAGS

PATH=".:/local64/bin:/mingw64/bin:/mingw/bin:/bin:/opt/bin"
PS1='\[\033[32m\]\u@\h \[\033[33m\w\033[0m\]$ '
export PATH PS1

# directory where sources will be downloaded
LOCALSOURCEDIR=/sources
# package build directory
LOCALBUILDDIR=/build64
# package installation prefix
LOCALDESTDIR=/local64
export LOCALBUILDDIR LOCALDESTDIR

EOF

Make sure it is executed on login:

cat >> /etc/profile << "EOF"
if [ -f /local32/etc/profile.local ]; then
        source /local32/etc/profile.local
fi

EOF

Apply the new settings:

source /local32/etc/profile.local

Note that the default environment is 32-bit. You can switch to the 64-bit environment with the following command:

source /local64/etc/profile.local
Configuring vim

(Skip this section if you don't want to use the VIM editor)

Create a configuration file for VIM:

cat > ~/.vimrc << "EOF"
" Configuration file for VIM
set nocompatible
set bs=2                " allow backspacing over everything in insert mode
set ai                  " set autoindenting on
" set backup            " keep a backup file
set nobackup            " do not keep a backup file
set history=256	        " keep 256 lines of command line history
set ruler               " show the cursor position all the time
set tabstop=8           " tab at 4 characters
set shiftwidth=8        " 4 characters indentation
set nowrap              " do not wrap long lines
set visualbell          " no bell
set background=light    " msys rxvt has a light background
"set background=dark    " mingw shell uses a black background
syntax on               " syntax highlighting on

EOF

Set vim as default editor in the 32-bit environment:

cat >> /local32/etc/profile.local << "EOF"
EDITOR=vim
export EDITOR
EOF

In the 64-bit environment:

cat >> /local64/etc/profile.local << "EOF"
EDITOR=vim
export EDITOR
EOF
Installing additional packages in /opt

We install a few third-party tools in /opt to prevent them from interfering with the default packages.

Download and install the 7zip command line package:

cd ${LOCALSOURCEDIR} && \
wget -c "http://downloads.sourceforge.net/sevenzip/7za920.zip" && \
cd /opt/bin && \
unzip ${LOCALSOURCEDIR}/7za920.zip && \
mkdir -p ../doc/7za920 && \
mv license.txt readme.txt 7-zip.chm ../doc/7za920

Download and install the Portable Git package from msysgit:

cd ${LOCALSOURCEDIR} && \
wget -c "http://msysgit.googlecode.com/files/PortableGit-1.8.4-preview20130916.7z" && \
cd /opt && \
7za x ${LOCALSOURCEDIR}/PortableGit-1.8.4-preview20130916.7z && \
rm git-bash.bat git-cmd.bat 'Git Bash.vbs' && \
mv ReleaseNotes.rtf README.portable doc/git

Download and install the win32 subversion client using the following commands:

cd ${LOCALSOURCEDIR} && \
wget -c "http://downloads.sourceforge.net/project/win32svn/1.8.5/apache22/svn-win32-1.8.5.zip" && \
cd ${LOCALBUILDDIR} && \
unzip ${LOCALSOURCEDIR}/svn-win32-1.8.5.zip && \
cp -va svn-win32-1.8.5/* /opt && \
mkdir -p /opt/doc/svn-win32-1.8.5 && \
mv /opt/README.txt /opt/doc/svn-win32-1.8.5

Download and install the win32 cmake client using the following commands:

cd ${LOCALSOURCEDIR} && \
wget -c "http://www.cmake.org/files/v2.8/cmake-2.8.12.1-win32-x86.zip" && \
cd ${LOCALBUILDDIR} && \
unzip ${LOCALSOURCEDIR}/cmake-2.8.12.1-win32-x86.zip && \
cp -va cmake-2.8.12.1-win32-x86/* /opt
Building packages

The following sections of this guide describe how to build various local packages. If you do not want to build them yourself, you can download my build:

32-bit local packages with GTK+
msys-2013-12-14-local32-gtk.7z
64-bit local packages with GTK+
msys-2013-12-14-local64-gtk.7z

These packages should be extracted into the main installation directory C:\MinGW, you should end up with C:\MinGW\mingw32 and/or C:\MinGW\mingw64.

Remember you can always switch between environments by reading the apporiate profile:

To switch to the 32-bit build environment:

source /local32/etc/profile.local

To switch to the 64-bit build environment:

source /local64/etc/profile.local
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
嵌入式开发是一项需要特定开发环境的技术,Qt作为一个跨平台开发框架,在嵌入式系统上也具有广泛的应用。本文将介绍Qt嵌入式开发平台环境的搭建方法。 1.安装Qt Qt是一个跨平台的应用程序框架,可以在Windows、Linux、Mac OS X、Android、iOS等多个平台上运行。在嵌入式系统上使用Qt,需要先下载相应的Qt版本。可以在Qt官网上下载相应的版本,也可以在终端中使用apt-get或yum等包管理器进行安装。需要注意的是,不同的嵌入式系统可能需要不同的Qt版本,需要根据具体情况选择合适的版本。 2.安装交叉编译工具链 嵌入式系统和主机的CPU架构可能不同,因此需要使用交叉编译工具链进行编译。交叉编译工具链包括交叉编译器、交叉编译库等,可以在嵌入式系统的开发环境中获取。需要注意的是,不同的嵌入式系统可能需要不同的交叉编译工具链,需要根据具体情况选择合适的工具链。 3.配置Qt交叉编译环境 在安装完成Qt和交叉编译工具链之后,需要配置Qt交叉编译环境。具体操作如下: (1)打开Qt Creator,选择“工具”-“选项”-“构建和运行”。 (2)在“构建和运行”页面中,选择“Qt版本”,点击“添加”,选择已安装的Qt版本。 (3)在“构建和运行”页面中,选择“构建套件”,点击“添加”,选择“嵌入式”并填写相应的信息。 (4)在“构建和运行”页面中,选择“构建套件”,选择已添加的嵌入式套件,点击“编译器”,选择已安装的交叉编译器。 (5)在“构建和运行”页面中,选择“构建套件”,选择已添加的嵌入式套件,点击“调试器”,选择已安装的调试器。 4.编写和调试Qt程序 配置完成Qt交叉编译环境之后,就可以开始编写和调试Qt程序了。在Qt Creator中,可以创建新项目,选择“嵌入式”套件进行编译和调试。需要注意的是,在嵌入式系统上运行Qt程序需要使用特定的硬件环境,因此需要将程序移植到嵌入式系统中进行测试。 总之,Qt嵌入式开发平台环境的搭建需要安装Qt、交叉编译工具链,并配置Qt交叉编译环境,才能进行程序的编写和调试。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值