在Windows 7中使用MinGW-w64编译C代码时出错

问题描述:

我正在尝试从MinGW编写的backtrace项目https://code.google.com/p/backtrace-mingw/中编译代码,但使用MinGW-w64。在Windows 7中使用MinGW-w64编译C代码时出错

我的旧安装和MinGW-w64的全新安装产生同样的问题。路径被设置在路径变量,以及在命令提示:

C:\的mingw-W64 \ i686-4.9.2-Win32的sjlj-rt_v3-REV1 \的mingw32 \ BIN

Ç :\ mingw-w64 \ i686-4.9.2-win32-sjlj-rt_v3-rev1 \ mingw32虽然这不是必需的。

这是该项目的生成文件:

.PHONY: all clean 

all : backtrace.dll test.exe 

backtrace.dll : backtrace.c 
    gcc -O2 -shared -Wall -o [email protected] $^ -lbfd -lintl -liberty -limagehlp 

test.exe : test.c 
    gcc -g -Wall -o [email protected] $^ 

clean : 
    -del -f backtrace.dll test.exe 

当编译我得到警告:

backtrace.c:23:17:致命错误:bfd.h:没有这样的文件或目录的#include < bfd.h>`

,因为该文件在../mingw32/include文件夹存在了一个奇怪的。

如果我添加此compilind的DLL时:-IC:\ MinGW的-W64 \ i686-4.9.2-Win32的sjlj-rt_v3-REV1 \ mingw32的\包括继续,但在指令停止:#错误config.h必须包含在此标头和config.h在MinGW-w64中丢失

任何想法?

内容添加到编译语句的末尾:

-I./mingw32/include 

因此整个编译的语句应该是:

gcc -g -Wall -o [email protected] $^ -I./mingw32/include 

所以编译器知道在哪里可以找到包括文件

+0

没有帮助之前把

#define PACKAGE package

。问题是DLL,我已经试过了,看到这个问题。 – reader 2015-02-23 17:54:37

该路径在mingw中由gcc include路径定义缺失。我不知道为什么。您必须以任何您喜欢的方式自行添加:cmake recipe,autoconf recipe,CFLAGSCPATHgcc specs

而且,据我记得,它仅使用HAVE_STRINGIZE宏从config.h,它只是用来定义CONCAT4宏,这不是在bfd.h任何地方使用。所以,它的安全骗一点,包括bfd.h