Articles of mingw

__WORDSIZE在编译中的作用

以下是/usr/include/x86_64-linux-gnu/gnu/stubs-32.h文件的内容: #include <bits/wordsize.h> #if __WORDSIZE == 32 # include <gnu/stubs-32.h> #elif __WORDSIZE == 64 # include <gnu/stubs-64.h> #else # error "unexpected value for __WORDSIZE macro" #endif 我在64位机器上,所以结果 #include<stdio.h> main() { printf("Word size : %d\n",__WORDSIZE); } 是 Word size : 64 那么这里是一个问题,系统variables__WORDSIZE的作用是什么? 我正在开发一个32位应用程序(使用mingw 32位编译器),由于我的__WORDSIZE是64位,文件/usr/include/x86_64-linux-gnu/gnu/stubs-32.h最终导致包括/usr/include/x86_64-linux-gnu/gnu/stubs-64.h 。 我对这部分感到困惑。 这个行为的后果是什么? 这是正常的,如果不是如何强行包含/usr/include/x86_64-linux-gnu/gnu/stubs-32.h ? 先谢谢你。

寻找Linux上的Win exe所需的DLL(用mingw交叉编译)?

我在Linux上使用MinGW来交叉编译到Windows。 做到这一点是一件轻而易举的事情。 把所需的DLL包装起来并不那么简单。 目前的解决scheme是在Windows上运行可执行文件并复制到DLL,直到它真正运行。 是否有一个Linux的工具,列出我的Windows .exe所需的DLL? (类似于ldd和DependencyWalker的组合)

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

我使用Ubuntu 13.04并使用apt-get install mingw-w64 。 我可以使用下面的命令编译并链接我的程序的一个可用的64位版本: x86_64-w64-mingw32-g++ code.cpp -o app.exe 其中生成一个64位的app.exe文件。 我用什么二进制或命令行标志来生成一个32位版本的app.exe?

是否有用于Linux的Clang mingw交叉编译器?

在Linux中,特别是在Debian或Ubuntu上,预先打包的Mingw交叉编译器可以生成Windows EXE。 但有没有类似的交叉编译器使用Clang而不是GCC? (或者如何build立这样一个野兽的指示。)

如何使用mingw启用tbb来安装opencv

如何在启用TBB的情况下安装Opencv? 我尝试了以下内容: 1)下载TBB包。 2)使用以下命令构build mingw32-make compiler=gcc arch=ia32 runtime=mingw default 3)我设置环境variablespath为“d:\ tbb \ build \ windows_ia32_gcc_mingw_release 3)现在使用cmake,我启用了“WITH_TBB”并编译了opencv。 它扔下面的错误。 [ 22%] Built target pch_Generate_opencv_core Linking CXX shared library ..\..\bin\libopencv_core245.dll c:/mingw/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/bin/ld.exe: cannot fin d -ltbb collect2: ld returned 1 exit status make[2]: *** [bin/libopencv_core245.dll] Error 1 make[1]: *** [modules/core/CMakeFiles/opencv_core.dir/all] Error 2 make: *** [all] Error 2 我错过了什么…请指教..

MinGW应用程序的崩溃报告

我有一个与MinGW编译的C ++应用程序,我一直在接收客户的崩溃投诉。 因此,除了大量login可能崩溃的部分(在发布新版本之前)之外,我一直在寻找一个崩溃logging器,以便在发生错误时帮助我找出堆栈跟踪和任何其他有用的debugging信息。 是否存在任何与MinGW应用程序兼容的工具? (似乎编译器和崩溃报告策略之间有着密切的关系,因此是个问题)。 有没有可以帮助我的Windows工具? 应用程序主要在Windows XP机器上运行。 能够写信息到一个文件就足够了我的目的。 然后,我可以要求我的客户给我发送信息。 我一直在寻找谷歌的breakpad和SetUnhandledExceptionFilter ,但我仍然不知道他们会以任何方式有用。 其他崩溃报告实用程序(如crashrpt )是为Visual C ++devise的,所以我想用MinGW尝试它们并没有什么意义。 编辑:关于这个问题的一些有用的链接 解决随机崩溃 DrMinGW(即时debugging器) 我用来获取堆栈跟踪的一些代码 有些人有同样的问题: 核心在明暗下倾倒 在Mingw32上创build并读取gdb核心转储 用MinGW + GDB进行事后debugging

我需要帮助,试图用MinGW编译GLFW的简单例子

我想从GLFW的文档中编译一个例子。 我的文件夹和源文件的文件夹结构是: C:\ CPP \ glfw3.dll glfw3dll.a libglfw3.a test.cpp 包括\ GLFW \ glfw3.h glfw3native.h #include <GLFW/glfw3.h> int main(void) { GLFWwindow* window; /* Initialize the library */ if (!glfwInit()) return -1; /* Create a windowed mode window and its OpenGL context */ window = glfwCreateWindow(640, 480, "Hello World", NULL, NULL); if (!window) { glfwTerminate(); return -1; […]

Eclipse MinGW二进制文件未find

我试图在Eclipse中运行一个简单的C项目。 我已经阅读了关于设置Eclipse的每一个可能的线程,我认为我有一切正确。 我为C / C ++开发人员安装了Eclipse IDE,安装了MinGW和MySys。 我已经将我的系统variablesPath设置为C:\MinGW\bin; C:\msys\1.0\bin C:\MinGW\bin; C:\msys\1.0\bin ,我也在Eclipse偏好设置中select了PE Windows Parser 。 最后,我将环境variables设置为PATH,并将值设置为checkboxselect列表中的Pathvariables。 然而,当我去运行我的程序,我得到的错误 启动失败:找不到二进制文件。 我忽略了什么? 我清理/重build/重新启动我的电脑,看看是否能解决这个问题,仍然没有运气。 编辑:当我看 项目>>属性>> C / C ++常规>>path和符号>>包含选项卡 没有列出,我想知道这是否有什么关系呢?

如何在STL中使用libclang?

我试图用libclang来parsing一个库,而且我遇到了一个非常简单的问题:如何使用STL来configuration它? 目前,它无法parsing翻译单元,因为它找不到。 这是我的尝试: char *args[] = {"-x", "c++", "-Ic:/my/library/includes", "-IG:/Prog/libcxx-3.4/include"}; clang_parseTranslationUnit(index, "c:/my/library/test.cpp", args, 4, 0, 0, 0); 我在Windows上,从llvm.org下载了预编译的clang二进制文件,并尝试了各种STL实现: 视觉工作室 MingW平台 libCXX 在每一种情况下,我都以未知的types结束了。 例如,与mingw,我有以下错误信息: /mingw/include\wchar.h:221:71:error:unknown type name'_locale_t'/mingw/include\wchar.h:223:81:error:unknown type name'_locale_t'/mingw/include\stdlib.h :173:65:error:unknown type name'_locale_t'/mingw/include\stdlib.h:175:75:error:unknown type name'_locale_t'/mingw/include\io.h:301:14:error:unknown键入名称'off64_t'/mingw/include\io.h:301:36:错误:C ++需要所有声明的types说明符/mingw/include\io.h:302:14:错误:未知types名称'off64_t'/ mingw / include \ io.h:302:39:error:unknown type name'off64_t'/mingw/include\unistd.h:65:20:error:unknown type name'off_t' 我find关于这个主题的罕见的教程不谈论这个主题…

将数据序列化代码从C ++ linux / mac移植到C ++窗口

我有一个软件框架在mac和linux上编译和运行成功。 我现在试图将其移植到Windows(使用mingw)。 到目前为止,我有软件编译和运行在Windows下,但它不可避免的越野车。 特别是,我有一个阅读macos(或linux)序列化到程序的windows版本(segfaults)的数据的问题。 序列化过程序列化原始variables(长整数,整数,双精度等)的值到磁盘。 这是我正在使用的代码: #include <iostream> #include <fstream> template <class T> void serializeVariable(T var, std::ofstream &outFile) { outFile.write (reinterpret_cast < char *>(&var),sizeof (var)); } template <class T> void readSerializedVariable(T &var, std::ifstream &inFile) { inFile.read (reinterpret_cast < char *>(&var),sizeof (var)); } 所以为了保存一堆variables的状态,我依次调用每个variables的serializeVariable。 然后再读取数据,调用readSerializedVariable按照保存顺序进行调用。 例如保存: ::serializeVariable<float>(spreadx,outFile); ::serializeVariable<int>(objectDensity,outFile); ::serializeVariable<int>(popSize,outFile); 并阅读: ::readSerializedVariable<float>(spreadx,inFile); ::readSerializedVariable<int>(objectDensity,inFile); ::readSerializedVariable<int>(popSize,inFile); 但在Windows中,这个序列化数据的读取失败。 我猜测,Windows序列化数据有点不同。 我想知道是否有一种方法可以修改上面的代码,以便保存在任何平台上的数据可以在任何其他平台上读取…任何想法? […]