我正在尝试在Windows 7上使用MinGW编译this program。 在我第一次尝试时它给了我这个错误:
>gcc -o ries.exe ries.c -lm
ries.c:1582:21: fatal error: stdafx.h: No such file or directory
compilation terminated.
我google了一下,发现我应该删除# include "stdafx.h"
行,我做了。
现在它给了我这个:
C:\Users\XXXXXX\AppData\Local\Temp\cczlkqve.o:ries.c:(.text+0xb9): undefined reference to `asprintf'
collect2: ld returned 1 exit status
谷歌现在沉默了......接下来我该怎么办?
提前致谢。
答案 0 :(得分:0)
MinGW使用(AFAIK)Microsoft C运行时库。我不认为asprintf或同等存在 - 虽然这很奇怪,因为无论如何他都包含stdafx.h用于Windows构建,尽管不是特别有用的方式(它不能用于预制的AFAICS)编译标题,因为它在#if)
中最简单的解决方法是自己分配缓冲区,即更改
char * name_ext;
int nc;
nc = asprintf(&name_ext, "%s.ries", filename);
到
char name_ext[MAX_PATH];
int nc;
nc = snprintf(name_ext, MAX_PATH, "%s.ries", filename);
如果没有定义MAX_PATH(但我认为它将是:你已经有了stdlib.h),那么要么自己定义它,要么替换数字260.