1

Windows 7 で MinGW を使用してこのプログラムをコンパイルしようとしています。最初の試行で、次のエラーが発生しました。

>gcc -o ries.exe ries.c -lm

ries.c:1582:21: fatal error: stdafx.h: No such file or directory
compilation terminated.

少しググったところ、# 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

Google は沈黙しています...次に何をすればよいですか?

前もって感謝します。

4

1 に答える 1

0

MinGW は (AFAIK) Microsoft C ランタイム ライブラリを使用します。その中にasprintfまたは同等のものは存在しないと思います-特に有用な方法ではありませんが、とにかく彼が Windows ビルド用に stdafx.h を含めたので、それは奇妙ですが (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 に置き換えます。

于 2012-04-25T12:34:40.127 に答える