草庐IT

linux - 如何在 Linux for Windows 上与 MinGW 交叉编译?

我正在尝试使用MinGW在Linux上为Windows编译Qt5应用程序。我正在使用Travis-CI连续构建两个Windows可执行文件(win32、win64)。我已经设置了一个构建矩阵,其中包含不同MinGW依赖项的定义。before-install部分定义了Qt、MinGW和gcc依赖项。在install期间获取包。这是我的.travis.yml:language:cppmatrix:fast_finish:trueinclude:#cross-compileusingmingw-compiler:":w64"env:PLATFORM="mingw32"ARCH="x86_64

linux - 如何使用 mingw-w64 编译和链接 32 位 Windows 可执行文件

我正在使用Ubuntu13.04并使用apt-getinstallmingw-w64安装了mingw-w64。我可以使用以下命令编译和链接我的程序的64位版本:x86_64-w64-mingw32-g++code.cpp-oapp.exe生成64位app.exe文件。我使用哪些二进制或命令行标志来生成32位版本的app.exe? 最佳答案 这取决于您当前使用的工具链变体。DWARF和SEH变体(从GCC4.8.0开始)都只是单目标。您可以通过检查其发行版的目录结构来亲自查看,即它们仅包含具有64位或32位寻址的库,但不会同时包含两者

linux - 如何使用 mingw-w64 编译和链接 32 位 Windows 可执行文件

我正在使用Ubuntu13.04并使用apt-getinstallmingw-w64安装了mingw-w64。我可以使用以下命令编译和链接我的程序的64位版本:x86_64-w64-mingw32-g++code.cpp-oapp.exe生成64位app.exe文件。我使用哪些二进制或命令行标志来生成32位版本的app.exe? 最佳答案 这取决于您当前使用的工具链变体。DWARF和SEH变体(从GCC4.8.0开始)都只是单目标。您可以通过检查其发行版的目录结构来亲自查看,即它们仅包含具有64位或32位寻址的库,但不会同时包含两者

新版MinGW-w64(12.2.0)安装

GitHub的MinGW已经更新到12.2.0了,SourceForge上面最新只有8.1.0版本说明Win32-i686-Windows32位版本,在Windows32位上本地运行并编译(也可以在Windows64位上运行,但以32位模式运行)Win64-x86_64-Windows64位版本,在Windows64位上本地运行并编译(不会在Windows32位上运行)msvcrt和ucrt传统上,MinGW-w64编译器使用MSVCRT作为运行库,该库在所有版本的Windows上都可用。由于Windows10通用C运行时(UCRT)可作为MSVCRT的替代方案。通用C运行时也可以安装在早期版

c++ - 向 MinGW 添加额外的 include/lib 路径

除了默认目录之外,我想添加一些额外的include/lib目录,以便MinGW在编译时进行搜索。这样做的原因是因为我目前安装MinGW的硬盘几乎已满,所以我不得不将Qt安装到我的第二个硬盘中。那么,如何让MinGW默认包含Qt文件? 最佳答案 您可以为包含目录设置环境变量CPLUS_INCLUDE_PATH,为库目录设置LIBRARY_PATH。更多信息请访问EnvironmentVariablesAffectingGCC 关于c++-向MinGW添加额外的include/lib路径,我

c++ - 向 MinGW 添加额外的 include/lib 路径

除了默认目录之外,我想添加一些额外的include/lib目录,以便MinGW在编译时进行搜索。这样做的原因是因为我目前安装MinGW的硬盘几乎已满,所以我不得不将Qt安装到我的第二个硬盘中。那么,如何让MinGW默认包含Qt文件? 最佳答案 您可以为包含目录设置环境变量CPLUS_INCLUDE_PATH,为库目录设置LIBRARY_PATH。更多信息请访问EnvironmentVariablesAffectingGCC 关于c++-向MinGW添加额外的include/lib路径,我

c++ - 如何告诉 MinGW 链接器不要导出所有符号?

我正在使用MinGW工具链构建一个Windows动态库。为了构建这个库,我静态链接到提供API的其他2个库,并且我有一个.def文件,我在其中编写了我想在我的库中导出的唯一符号。问题是GCC正在导出所有符号,包括我链接到的库中的符号。有没有办法告诉链接器只导出def文件中的符号?我知道有选项--export-all-symbols但似乎没有相反的选项。现在构建脚本的最后一行具有这样的结构:g++-sharedCXXFLAGSDEFINESINCLUDES-olibrary.dlllibrary.cppDEF_FILE\OBJECT_FILESLIBS-Wl,--enable-stdca

c++ - 如何告诉 MinGW 链接器不要导出所有符号?

我正在使用MinGW工具链构建一个Windows动态库。为了构建这个库,我静态链接到提供API的其他2个库,并且我有一个.def文件,我在其中编写了我想在我的库中导出的唯一符号。问题是GCC正在导出所有符号,包括我链接到的库中的符号。有没有办法告诉链接器只导出def文件中的符号?我知道有选项--export-all-symbols但似乎没有相反的选项。现在构建脚本的最后一行具有这样的结构:g++-sharedCXXFLAGSDEFINESINCLUDES-olibrary.dlllibrary.cppDEF_FILE\OBJECT_FILESLIBS-Wl,--enable-stdca

c++ - 使用 MinGW 和 Eclipse 编译 Win32 GUI 应用程序(没有控制台)

我正在使用带有MinGW作为编译器的eclipseIDE来制作Win32GUI应用程序。我想去掉控制台,但是用-mwindows选项编译程序没有效果,控制台还在。使用-Wl,--subsystem,windows标志也不会产生任何效果。我做错了什么? 最佳答案 对于Windows上的gcc,构建非控制台Windows应用程序应考虑两件事:编译器选项-mwindows有WinMain()但是,可以手动将-Wl,-subsystem,windows指定给链接器,并将gdi32和comdlg32包含到build。这正是-mwindows自

c++ - 使用 MinGW 和 Eclipse 编译 Win32 GUI 应用程序(没有控制台)

我正在使用带有MinGW作为编译器的eclipseIDE来制作Win32GUI应用程序。我想去掉控制台,但是用-mwindows选项编译程序没有效果,控制台还在。使用-Wl,--subsystem,windows标志也不会产生任何效果。我做错了什么? 最佳答案 对于Windows上的gcc,构建非控制台Windows应用程序应考虑两件事:编译器选项-mwindows有WinMain()但是,可以手动将-Wl,-subsystem,windows指定给链接器,并将gdi32和comdlg32包含到build。这正是-mwindows自