问题标签 [mingw32]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3834 浏览

qt - 如何在 Qt Creator 中选择自定义编译器“工具链”

我的 Mac 上有 Qt Creator。我下载了 Qt sdk 源代码,我构建了它们,并且我能够为 mac 编译代码并且它运行良好。

我想以 Windows 为目标,所以我下载了 mingw32 源,我构建了它们,现在我有了一个i386-mingw32-g++可以很好地编译 c++ 代码的可执行文件,并且从我的 mac 编译的二进制可执行文件在 Windows 机器上运行得很好。

我现在想在 Qt Creator 中创建一个新的构建配置,以便它将使用 mingw32 作为编译器,以生成 Windows 二进制文件。

这是我在工具链配置窗口中得到的:

工具链配置窗口

这是我的构建配置中的内容:

构建配置工具链选项

如您所见,我无法选择 mingw32 作为编译器。为什么?

0 投票
2 回答
547 浏览

c++ - C++ 多继承内存寻址问题

请忽略 #include 部分,假设它们已正确完成。这也可能是特定于实现的(但 vtables 的概念也是如此),但我只是好奇,因为它增强了我对多重继承的可视化。(顺便说一下,我使用的是 MinGW 4.4.0)

初始代码:

这是编译并生成目标代码。

在我使用的其他一些编译单元中(在包含上述代码的头文件之后):

objC 的内存模型:

&objC将在上面假设的内存模型中包含 <1> 的起始地址,编译器如何/何时将其转移到 <3>?是否在检查 call at 期间发生Label 1

编辑::

因为 Lable 1 似乎是一个赠品,只是让它对编译器来说更加模糊。请参阅上面的编辑代码。现在编译器什么时候做,在哪里做?

0 投票
1 回答
185 浏览

c++ - 我的 SQL 查询被切断

我有这堂课:

当我调用idToCategory()方法时,它返回:

但它应该返回如下内容:

0 投票
0 回答
957 浏览

cmake - Windows 上 CMake 的基于 LLVM 的项目库依赖项

之前已经在这里问过这个问题,但我找不到适合我的解决方案。 LLVM 项目的示例 CMakeLists.txt 文件- 这是最初的问题。

但是,在使用 LLVM 制作项目时,我遇到了几个问题。

平台:Windows 7 编译器:MingW

1)首先,我使用的是 llvm 的 svn 版本,目前是 3.1。目前,llvm 3.0 也不存在 MingW 的二进制文件,所以我决定使用最新的本身并使用 mingw 构建它。因此,尽管构建工作正常,但我似乎无法在 bin 文件夹中找到 llvm-config perl 脚本。我尝试搜索整个目录,但我只能找到一个 llvm-config 文件夹和一个依赖文件。

2) 我尝试为 Visual Studio 2010 构建 llvm,但它不适用于 cmake,所以我不得不使用 MingW。

3)现在,这是我将库添加到 CMake 的顺序 - LLVMXCoreInfo

LLVMMipsAsmPrinter LLVMMipsCodeGen LLVMMipsInfo LLVMMBlazeAsmPrinter LLVMMBlazeCodeGen LLVMMBlazeInfo LLVMLinker LLVMipo LLVMInterpreter LLVMInstrumentation LLVMJIT LLVMExecutionEngine

LLVMMC LLVMBitWriter LLVMX86Disassembler LLVMX86AsmParser LLVMX86AsmPrinter LLVMX86CodeGen LLVMX86Info LLVMAsmParser LLVMARMAsmParser LLVMMCParser LLVMARMAsmPrinter LLVMARMCodeGen LLVMARMInfo LLVMArchive LLVMBitReader

LLVMSelectionDAG

LLVMAsmPrinter LLVMCodeGen LLVMScalarOpts LLVMInstCombine LLVMTransformUtils LLVMipa LLVMAnalysis LLVMTarget LLVMMC LLVMCore

LLVM 支持

imagehlp psapi m

4)但是,添加 InitializeNativeTarget(),开始给我链接错误,我认为这是因为依赖关系不正确。

5)我想使用 llvm_map_components_to_libraries(REQ_LLVM_LIBRARIES jit native),因此我将它添加到我的 CMakeLists.txt INCLUDE(cmake/LLVM-Config.cmake)

但是,这不起作用。cmake/LLVM-Config.cmake:141 处的 CMake 错误(消息):在 llvm 库列表中找不到库“jit”。

现在,这个问题真的太长了,但我基本上想问在 CMake 中最好的方法是什么。有人可以发布整个事情(对于Windows)。另外,有没有办法为 VS 2010 构建它。我尝试了 CLang 网站上的说明,但这些说明在 CMake 中给了我这个错误。

“字符串子命令 REGEX,模式 MATCH 至少需要 5 个参数来命令。”

我真的需要一些帮助来弄清楚如何让依赖项在 llvm 中工作并使用 VS 构建它。我真的很感激一些帮助。

0 投票
1 回答
292 浏览

c - GCC/MINGW C:在 main() 的入口处重新初始化全局变量

我正在为使用全局变量的 C 代码创建一个测试环境。我使用该术语来指代在 C 外部函数中声明的任何变量(带有或不带有static限定符),以及带有static限定符的局部变量。一些全局变量未显式初始化(​​因此初始化为 0),其他全局变量初始化为常量值。

我想要一种将这些全局变量从我的代码重新初始化到它们进入时的状态的方法main(),以从测试代码的角度模拟重新运行。

到目前为止,我所做的实际上是终止正在测试的代码,并使用驱动程序调用立即重新运行它system()。这很笨拙而且有点慢(我猜是因为检测的可执行文件必须将上下文保存到磁盘/从磁盘恢复)。我正在寻找更好的方法。如果有一些运行时函数可以被调用并完成工作,我想知道!

我的环境是MinGW32,我想在Linux32/Linux64下保持与gcc的兼容。

检测代码作为源代码可供我使用(我不想修改甚至检查),并且仅限于 and 的标准 C99 库函数,<string.h>以及<stdlib.h>可用于托管实现的那些(<float.h><iso646.h><limits.h><stdarg.h><stdbool.h><stddef.h><stdint.h>)。

我自己的代码不使用全局变量。如果我的堆/分配变量在重新初始化后仍然存在(我可以将所需的所有内容保存在本地/堆栈/自动变量中),那会很好,但不是绝对必要的。我希望检测代码能够跟踪其所有堆变量(如果未能释放的堆变量导致堆耗尽,它甚至可以被视为一个特性)。

我隐约想到的一件事是在带有测试代码的 C 源文件的开头和结尾添加虚拟变量声明(很容易从包装器编译它),并祈祷该测试代码的所有全局变量都在内存中的连续块;这样我可以从虚拟变量的位置定位块,并随意恢复它。那能可靠地工作吗?

TIA

0 投票
4 回答
2711 浏览

c++ - C++:虚函数如何解决“this”指针范围问题?

(C++,MinGW 4.4.0,Windows 操作系统)

代码中的所有注释,除了标签 <1> 和 <2>,都是我的猜测。如果您认为我在某处错了,请纠正我:

<2> 是一个错误并且很明显。为什么 <1> 不是错误?我认为这个调用发生的是:参数是指向成员函数aptr->disp(); --> (*aptr->*(vtbl_B + offset to disp))(aptr) aptr的隐式指针。this在里面disp()我们会有std::printf("%d",x); --> std::printf("%d",aptr->x); SAME AS std::printf("%d",this->x);那么为什么 <1> 没有给出错误而 <2> 呢?

(我知道 vtables 是特定于实现的东西,但我仍然认为值得提出这个问题)

0 投票
2 回答
307 浏览

c++ - 无法使用 MinGW 构建 wxMSW-2.8.12

我已经尝试了两种不同版本的 gcc(4.6 和 4.7),其中有几种配置,包括

这是错误

我的平台是 Windows 7 64 位,但我没有尝试构建 64 位库(无论如何都不是故意的)
我做错了什么?

0 投票
1 回答
925 浏览

c++ - 将 gcc 可执行文件与 Visual C++ 库链接是否安全?

将 MinGW 可执行文件与由 Visual C++ 编译的库链接起来有多安全。

类似于此处解释的内容。 http://www.codesynthesis.com/~boris/blog/2011/12/09/oci-mingw/

TL; DR "...因为 OCI 是一个 C 库,我们可以使用 VC++ 的“官方”OCI 导入库oci.lib,将其重命名为libclntsh.a,我们已经为 MinGW 提供了 OCI"

这是一场等待发生的事故吗?会出什么问题?

0 投票
3 回答
13709 浏览

qt - Makefile 中缺少分隔符错误

我正在 Windows 上开发 Qt 4.7.2。我已经生成了 Makefile、Makefile.Debug 和 Makefile.Release。但是,当我尝试使用 mingw32-make 构建可执行文件时,出现以下错误:

0 投票
2 回答
1357 浏览

winapi - 当我包含 ddk/winddk.h 时,mingw32 给出错误

我是 Win 环境的新手,尝试编写使用 win 内核 API 但在 Ubuntu 10.04 上的代码……使用 mingw32(更具体地说,i586-mingw32msvc)

我的代码:

但是我在使用 ddk/winddk.h 标头时遇到了很多错误:编译为:i586-mingw32msvc-gcc WaitForSingleObj_2.c

所有错误都是这样的:

我为此错过了什么吗?当我尝试使用头文件 iostream 和 windows.h 进行编译时,效果很好。

编辑:

直到 KTIMER 很好,现在是新错误:/tmp/cc0epAQA.o:WaitForSingleObj_2.c:(.text+0x1d): undefined reference to `_ imp _KeInitializeTimer@4' collect2: ld returned 1 exit status

谁能告诉我,现在要包含哪个头文件?

编辑:[正如其他人已经评论过的,我经历过(!)请尽量避免使用其他平台进行 Windonws 内核开发]

我切换到 Visual C++ Express,下载了 WDK,从 Project Property->c/c++ .. ->Additional Include directory (C:\WinDDK\7600.16385.1\inc\ddk;C:\WinDDK\7600.16385. 1\inc\api;)

但是(我讨厌这个但是!)我遇到了很多编译错误,比如

我的代码:

如果有人有想法请帮忙!