現在、Windows で redland (librdf http://librdf.org/ ) をコンパイルしようとしています。彼らのウェブサイトによると、Windowsでビルドする必要があります。.sln の修正に時間を費やしたくないので、cygwin で librdf (および必要なプロジェクト) をコンパイルし、そのライブラリを Visual Studio で使用することを考えました。
私の質問は次のとおりです。Windowsアプリケーションでcygwinでコンパイルされたライブラリを使用することは可能ですか? もしそうなら、どのように?
私は Windows 開発者であるため、作成された .a ファイルと .dll に違いがあるかどうかはわかりません。私はすでにトピックまで読んでおり、プロジェクトに cygwin1.dll を含める必要がありますが、これは問題になりません。
または、レッドランドをWindows dllとしてコンパイルする方法を知っている人はいますか? mingw を使おうと思ったのですが、今までコンパイルできませんでした。
どんな助けでも大歓迎です。
ありがとう
アップデート:
Yaakov (および彼の非常にクールな cygwin ポート) の助けのおかげで、その間、なんとか raptor をコンパイルすることができました (これは librdf の前提条件です)。私がしなければならなかったのは、構成のための別の引数を含めることだけでした: --with-xml2-config=/usr/x86_64-w64-mingw32/sys-root/mingw/bin/xml2-config
今、別の要件であり、raptor2 に依存している rasqal をコンパイルしようとしています。それが機能するためには、正しいラプターのインストールを見つけるために、pkg-config の PKG_CONFIG_PATH="/usr/x86_64-w64-mingw32/sys-root/mingw/lib/pkgconfig/" をエクスポートする必要がありました。
したがって、rasqal の構成は機能しましたが、作成しようとすると次のエラーが発生します。
Making all in src
make[1]: Entering directory `/home/Stefan/workspace/rasqal/src'
make all-am
make[2]: Entering directory `/home/Stefan/workspace/rasqal/src'
/bin/sh ../libtool --tag=CC --mode=compile x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -DRASQAL_INTERNAL=1 -I/usr/x86_64-w64-mingw32/sys-root/mingw/include/raptor2 -g -O2 -DMTWIST_CONFIG -I../libmtwist -g -O2 -MT rasqal_algebra.lo -MD -MP -MF .deps/rasqal_algebra.Tpo -c -o rasqal_algebra.lo rasqal_algebra.c
libtool: compile: x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -DRASQAL_INTERNAL=1 -I/usr/x86_64-w64-mingw32/sys-root/mingw/include/raptor2 -g -O2 -DMTWIST_CONFIG -I../libmtwist -g -O2 -MT rasqal_algebra.lo -MD -MP -MF .deps/rasqal_algebra.Tpo -c rasqal_algebra.c -DDLL_EXPORT -DPIC -o .libs/rasqal_algebra.o
In file included from /usr/x86_64-w64-mingw32/sys-root/mingw/include/sys/time.h:10:0,
from rasqal.h:116,
from rasqal_algebra.c:39:
/usr/x86_64-w64-mingw32/sys-root/mingw/include/time.h:260:8: error: redefinition of 'struct timezone'
./win32_rasqal_config.h:62:8: note: originally defined here
Makefile:1045: recipe for target `rasqal_algebra.lo' failed
make[2]: *** [rasqal_algebra.lo] Error 1
make[2]: Leaving directory `/home/Stefan/workspace/rasqal/src'
Makefile:720: recipe for target `all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/Stefan/workspace/rasqal/src'
Makefile:484: recipe for target `all-recursive' failed
make: *** [all-recursive] Error 1
私はクロスコンパイルにあまり興味がありません。誰かが私を正しい方向に向けることができますか?