发布MinGW QP 4.4.3-4,集成官方与TDM优点,交叉编译

「已注销」 「已注销」 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
官方4.4.0的缺点:
1. 头文件不能下断点;
2. 跨模块(DLL)不能catch exception调试
官方4.4.0的优点:
1. 对dw-2异常处理做了完善
2. 对Windows平台的SEH处理进行了完善

MinGW TDM 4.4.1版本的优点:
1. 头文件可以下断点
2. 可以跨模块(DLL)catch exception调试
3. 支持大文件
4. 支持-std=c++0x选项,修正__STRICT_ANSI__后的编译错误
5. stack扩充到32MB
6. 其他,我解释不了的修正
MinGW TDM 4.4.1版本的缺点:
1. 官方版本的优点它没有

另,TDM和官方都有的缺点是:版本更新比较落后,目前GCC已经发布4.4.3了...
且,TDM和官方版本都在cygwin模拟环境下编译,需要针对编译环境打补丁。

为了集成这两个版本的优点,克服他们的缺点,我有了在Linux平台交叉编译4.4.3的想法,并且集成官方和TDM的所有优点,克服他们的所有缺点!

MinGW QP版本的优点:
1. 官方4.4.0的所有优点
2. TDM4.4.1版本的所有优点
MinGW QP版本的缺点:
不详,有待实践检验。欢迎使用,本人已用此编译器编译了wxWidgets2.8.10、Qt4.6.2、Code::Blocks、boost1.4.2,经测试无误,所有优点集成成功后才发布。

完整版,集成了mingw32-4.4.3-4-all cross build with archlinux (binutils-2.20.1-2,gdb-7.0.50,make-3.81,mingwrt-3.18,w32api-3.14,pthreads2.8,iconv_1.13.1,解压后即可使用。
下载地址:http://qp-gcc.googlecode.com/files/mingw32-4.4.3-4-all.7z

仅gcc_g++编译器:http://qp-gcc.googlecode.com/files/gcc_g%2B%2B-4.4.3-4.7z

附上我探索15天的交叉编译方法:

交叉编译核心参数解释:
--build = 软件在什么平台下编译
--host = 软件在什么平台下运行
--target = 软件为什么平台服务(仅限开发工具链)
host = 后面的参数是四个部分:
架构-厂商-内核-标准库
例如 arm-generic-linux-gnu 表示 arm 架构,generic 厂商,linux内核,gnu glibc 标准库。

交叉编译器与target一致,比如去掉前面的i486-前缀,可以通过链接来实现,也可以自己编译。
cd /usr/bin
su
for files in i486-mingw32-*; do ln -s $files ${files:5}; done
exit


一、编译gmp
DIR=/home/loaden/AUR/mingw32
ABI=32 ../../src/gmp-5.0.1/configure \
--host=mingw32 \
--target=mingw32 \
--build=i686-pc-linux-gnu \
--enable-cxx \
--disable-static \
--enable-shared
make && make install prefix=$DIR/gmp && mingw32-strip $DIR/gmp/bin/*

二、编译mpfr
--with-gmp是必须的,否则无法生成DLL!
DIR=/home/loaden/AUR/mingw32
../../src/mpfr-2.4.2/configure \
--host=mingw32 \
--target=mingw32 \
--build=i686-pc-linux-gnu \
--with-gmp=$DIR/gmp \
--disable-static \
--enable-shared
make && make install prefix=$DIR/mpfr && mingw32-strip $DIR/mpfr/bin/*


三、编译gcc
# 给GCC源码打上补丁(在源码目录下执行)
for files in ../patches/gcc*; do patch -p0 < $files; done
# 在/mingw内建立链接(在编译目录下执行:可拷贝下列命令后同时执行)
sudo mkdir /mingw
sudo ln -s /usr/mingw32/include/ /mingw/include
sudo ln -s /usr/mingw32/lib/ /mingw/lib
# 定义变量
DIR=/home/loaden/AUR/mingw32
GCC_VER=4.4.3
# 为libgomp配置pthread路径
mkdir -p ./mingw32/libgomp
echo \
CFLAGS=\"-I$DIR/pthreads/include -O2 -mthreads -D__USE_MINGW_ACCESS\"$'\n'\
LDFLAGS=\"-L$DIR/pthreads/lib\"$'\n'\
> ./mingw32/libgomp/config.cache
# 导出环境变量
export C_INCLUDE_PATH="$DIR/pthreads/include"
export CPLUS_INCLUDE_PATH="$DIR/pthreads/include"
export LIBRARY_PATH="$DIR/pthreads/lib"
export LD_LIBRARY_PATH="$DIR/pthreads/bin"
export CFLAGS="-I$DIR/pthreads/include -O2 -D__USE_MINGW_ACCESS"
export BOOT_CFLAGS="-O2 -D__USE_MINGW_ACCESS"
export CFLAGS_FOR_TARGET="-O2 -D__USE_MINGW_ACCESS"
export CXXFLAGS="-I$DIR/pthreads/include -mthreads -O2 -D__USE_MINGW_ACCESS"
export BOOT_CXXFLAGS="-mthreads -O2 -D__USE_MINGW_ACCESS"
export CXXFLAGS_FOR_TARGET="-mthreads -O2 -D__USE_MINGW_ACCESS"
export LDFLAGS="-s" BOOT_LDFLAGS="-s"
export LDFLAGS_FOR_TARGET="-L$DIR/pthreads/lib -s"
# 配置
../../src/gcc-$GCC_VER/configure \
--prefix=/mingw \
--host=mingw32 \
--target=mingw32 \
--build=i686-pc-linux-gnu \
--enable-languages=c,c++ \
--enable-cxx-flags='-fno-function-sections -fno-data-sections' \
--enable-fully-dynamic-string \
--enable-version-specific-runtime-libs \
--enable-threads=win32 \
--enable-libgomp \
--disable-nls \
--disable-libstdcxx-pch \
--disable-win32-registry \
--disable-sjlj-exceptions \
--with-dwarf2 \
--with-gmp=$DIR/gmp \
--with-mpfr=$DIR/mpfr \
--with-pkgversion='QP MinGW32' \
--with-bugurl=http://www.qpsoft.com/blog/guestbook.php
make
# -Wl,...: 告诉GCC传递后面的选项给liker链接器
# 加入--stack=0x2000000把stack设为32MB,解决可能的stack overflow。
rm -f gcc/cc1.exe gcc/cc1plus.exe
make install DESTDIR=$DIR LDFLAGS="-s -Wl,--stack=0x2000000"

...全文

相关推荐

Windows下Qt静态编译连接和DLL依赖问题解决.doc

Windows下Qt静态编译连接和DLL依赖问题解决

zhaiwuyan

40-基于89C52的量程自适应切换数字电压表设计(设计+说明+原理+仿真).rar

项目40-基于89C52的量程自适应切换数字电压表设计 资料包括Proteus仿真+Keil程序+Altium Designer原理图+软件安装包+参考设计说明书+答辩PPT+设计流程图,保证资料完整性! 功能: (1)本设计以89C52单片机为控制核心,具备高效数据处理与控制能力,可稳定驱动量程自适应切换数字电压表工作。 (2)采用ADC0808作为模数转换传感器,精准将模拟电压信号转换为数字信号,为电压测量提供准确数据基础。 (3)配备数码管显示器,清晰直观呈现测量得到的电压数值,方便用户快速读取电压信息,了解测量结果。 (4)具有自动量程切换功能,能依据输入电压大小智能调整量程,确保测量精度,拓宽电压测量范围。 (5)以待测电压输入为监测对象,资料包含原理图等,助力学生掌握量程自适应数字电压表设计要点。

创界工坊工作室

《人形机器人自适应形态学的变形覆盖建模与控制》,.zip

1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

海神之光

neo4j-community-5.26.32-unix.tar 自己编译 带neo4j-browser-2026.10.08+0.zip 解压可直接运行

neo4j-community-5.26.32-unix.tar 自己编译 带neo4j-browser-2026.10.08+0.zip 解压可直接运行

夢隨心逝

三电平ANPC并网逆变器+DPWMA调制控制+正负序分离+电网前馈控制仿真

内容概要:本资源系统性地提供了三电平ANPC并网逆变器的Simulink仿真体系,聚焦于DPWMA调制控制、正负序电流分离、电网电压前馈补偿、中点电位平衡控制以及虚拟同步发电机(VSG)等核心技术,构建了完整的构网型逆变器控制框架。内容涵盖弱电网条件下逆变器的正负序阻抗建模与稳定性分析,采用扫频法实现精确的序阻抗辨识,并集成低电压穿越(LVRT)、孤岛检测、预测电流控制等多种典型工况仿真模型。所有模块均配套参考文献与仿真文件,部分为SCI论文复现成果,兼具理论深度与工程实用性,适用于先进控制策略的研发与验证。; 适合人群:面向电力电子、新能源发电、微电网及电力系统自动化等方向的研究生、科研人员及从事并网逆变器控制算法开发的工程技术人员,要求具备扎实的电力系统基础知识和一定的Simulink建模能力。; 使用场景及目标:①支持高校与科研机构开展三电平ANPC逆变器先进控制策略的教学与研究;②服务于高水平学术论文的复现与创新性控制方法(如VSG、MPC、DPWMA)在复杂电网环境下的性能验证;③助力工程师进行并网逆变器控制系统的设计、优化与稳定性评估。; 阅读建议:建议结合所提供的参考文献与仿真模型同步学习,先掌握双闭环控制与中点电位调节的基本架构,再逐步深入正负序分离、阻抗建模与稳定判据等高阶内容,注重理论推导、参数设计与仿真实验之间的闭环验证与相互印证。

欢多天天写代码
评论 72
收藏 已收藏
分享
返回顶部
「已注销」
C++ 语言 65,214 成员 250,514 内容