Visual Studio 2010 で Maxmind C ライブラリを正常にコンパイルした人はいますか? unistd.h のように見つからないファイルに関する多くのエラーが発生するため、Windows でコンパイルできません。
1050 次
1 に答える
4
表示されているエラーは、実際には必要のない GeoIPUpdate が含まれていることが原因である可能性があります。GeoIPUpdate は、データベースを更新するためのスタンドアロン スクリプトであり、API 自体を使用する必要はありません。それを削除して、問題が解決するかどうかを確認してください。
さらに、Visual Studio 2005 でバージョン 1.4.8 をコンパイルするには、次の追加手順を実行する必要がありました。
- GeoIPCity.c で、GeoIP*.h ファイルのインクルードを変更して、<> の代わりに "" を使用します。
- GeoIPCity.h で、GeoIP.h のインクルードを変更して、<> の代わりに "" を使用します。
- GeoIP.h に追加
#define ssize_t long
PACKAGE_VERSION
GeoIP.cで「1.4.8」に変更static const
GeoIPCity.c では、配列を宣言するときにa を使用できません。の定義を次のように変更tmp_fixed_record
します。unsigned char tmp_fixed_record[6+4]; //Can't use CITYCONFIDENCEDIST_FIXED_RECORD in declaration
- GeoIPCity.c
t
の先頭で宣言し_extract_record()
ます。 - main 関数を GeoIPCity.c に追加して、コードをコンパイルします。
- http://www.winimage.com/zLibDll/index.htmlから zlib125.dll.zip ファイルをダウンロードします。これらのファイルを抽出し、dllx64/* および static64/zlibstat.lib ファイルをディスク上の場所に保存します。ここで、Visual Studio で Project->Properties->Linker->Input に移動し、"Additional Dependencies" の下に "ws2_32.lib zlibwapi.lib zlibstat.lib" を追加します。次に、[Linker] -> [General] の下で [Additional Library Dependencies] に移動し、上記のファイルを保存した場所を追加します。
- GeoIPCity.c および GeoIP.c
pread
では定義されていません。これらの各ファイルに次の定義を追加します。
#define pread my_pread
static size_t my_pread( int file_no, void *buffer, size_t size, size_t offset )
{
if (_lseek( file_no, (long)offset, SEEK_SET) == offset)
return _read(file_no, buffer, (int)size);
else
return -1L;
}
さらに、とが含まれる#include <io.h>
ように GeoIP.h
に追加します。_lseek
_read
于 2012-11-22T10:30:09.230 に答える