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 + Boost:对'WSAStartup @ 8'的未定义引用

下面是我执行的 D:\Just4Fun\software\>make -f Makefile.hands stest g++.exe -g -D_WIN32_WINNT=0x0601 -ID:\Boost\boost_1_51_0 -LD:\Boost\boost_1_51_0\stage\lib -LD:\MinGW\lib -lboost_system-mgw46-d-1_51 -lboost_filesystem-mgw46-d-1_51 -lboost_iostreams-mgw46-d-1_51 -lws2_32 -lwsock32 -o TestSerial.exe TestSerial.cpp 下面是这个结果 C:\Users\oleg\AppData\Local\Temp\ccXpC7RG.o: In function 'ZN5boost4asio6detail17winsock_init_base7startupERNS2_4dataEhh': D:/Boost/boost_1_51_0/boost/asio/detail/impl/winsock_init.ipp:39: undefined reference to 'WSAStartup@8'C:\Users\oleg\AppData\Local\Temp\ccXpC7RG.o: In function 'ZN5boost4asio6detail17winsock_init_base7cleanupERNS2_4dataE': D:/Boost/boost_1_51_0/boost/asio/detail/impl/winsock_init.ipp:48: undefined reference to 'WSACleanup@0' collect2: ld returned 1 exit status make: *** [stest] Error 1 下面是关于提到的symobls检查库的结果(我没有以适当的方式格式化) `d:\ MinGW \ lib> nm -C […]

为C / C ++设置Windows构build环境的最佳方法

基本上我想在Windows上使用GCC来编译C / C ++。 我所看到的两个竞争平台是MinGW和Cygwin。 每个人都有自己的好处和局限性。 MinGW为Windows编译,而Cygwin需要cygwin .dll。 然而,在MinGW上安装库是困难的,而在cygwin上使用setup.exe作为“包pipe理器”更容易。 我的问题是什么是在Windows上编译的最佳方式。 使用MinGW和图书馆斗争会更好吗(在这种情况下,在MinGW上安装库的简单方法)。 或者我应该使用Cygwin,如果是的话,我怎样才能得到它不需要cygwin。DLL,有效地编译为正常的Windows编译。

mingw C程序安装在它的名字将不会运行(Windows 7)

我已经用C语言编写了经典的3行“Hello World” #include <stdio.h> #include <stdint.h> #include <stdlib.h> #include <strings.h> #include <string.h> int main(int argc, char **argv) { printf("Hello World!\r\n"); exit(0); } 在linux上编译定位win32: i686-w64-mingw32-gcc -o helloWorld.exe -g -march=i586 helloWorld.c 将hellowWorld.exe移动到Windows 7机器,运行良好…现在,我将它重命名为任何名称中的“setup”,就像hellosetupWorld.exe和UAC在我尝试运行时触发的一样,它甚至无法运行如果我回答UACpopup窗口“是的没关系,运行它”。 后来我得到一个popup询问我的程序是否正确安装。 这似乎是新的行为。 有没有人看过这个? 我已经在虚拟机上testing了这个来自MSDN的处女windows 7,几乎没有安装任何东西。 同样的问题。 呃…不只是明。 如果我在命令行使用visual studio进行编译,就会发生这种情况,如cl Hello.c 我得到完全一样的行为。 把'setup'放在名字的某个地方,程序不会运行。 提前致谢。

为什么我的编译器不接受fork(),尽pipe包含了<unistd.h>?

这是我的代码(创build只是为了testingfork()): #include <stdio.h> #include <ctype.h> #include <limits.h> #include <string.h> #include <stdlib.h> #include <unistd.h> int main() { int pid; pid=fork(); if (pid==0) { printf("I am the child\n"); printf("my pid=%d\n", getpid()); } return 0; } 我收到以下警告: warning: implicit declaration of function 'fork' undefined reference to 'fork' 它有什么问题?

OpenCV 2.2 Windows XP MinGW生成命名窗口,imshow崩溃

我下载了最新的Windows版本的OpenCV 2.2源代码,并使用MinGW 4.4.1在Windows XP上编译,在CMake 2.8的帮助下。 一切顺利,编译(mingw32-make)和安装(mingw32-make install)成功完成。 但是,当我编译一些包含highgui的namedWindow()和imshow()函数的代码时,它会编译但程序崩溃。 以下单行代码崩溃: namedWindow(“img”,CV_WINDOW_AUTOSIZE); OpenCV的示例程序,显示图像,也崩溃。 有没有人遇到同样的问题,你有解决scheme吗? 我也编译和使用Linux(Ubuntu)上的OpenCV 2.2没有任何问题。 非常感谢。

Windows有一个__declspec相当于Unix GCC的__attribute __((弱))?

我想导入一些C代码,但是重写它的main()函数。 我可以在Unix下用__attribute__((weak))预处理C代码的主要声明,但是这不会在Windows中编译,因为Strawberry Perl的GCC和MinGW的GCC都不能识别__attribute__((weak)) 。 在线阅读文档, __declspec似乎function相似。 是否有一个相当于Unix GCC的__attribute__((weak))macros的__declspec ? 这是我发布的早期问题的更具体的版本。