私は、DMD 2.058を使用して32ビットUbuntu Linux(11.10 Ocelot)でstd.net.curlを使用しようとしています。Linuxのstd.net.curlリンカーエラー
私は(dmd source.d
)を構築すると私が手:私は、コマンドライン(フルコマンド:dmd source.d -L-lcurl
)に-L-lcurl
を追加
/usr/lib/gcc/i686-linux-gnu/4.6.1/../../../../lib/libphobos2.a(curl.o): In function `_D3std3net4curl4Curl19_sharedStaticCtor30FZv':
std/net/curl.d:(.text._D3std3net4curl4Curl19_sharedStaticCtor30FZv+0x6): undefined reference to `curl_global_init'
/usr/lib/gcc/i686-linux-gnu/4.6.1/../../../../lib/libphobos2.a(curl.o): In function `_D3std3net4curl4Curl19_sharedStaticDtor31FZv':
std/net/curl.d:(.text._D3std3net4curl4Curl19_sharedStaticDtor31FZv+0x4): undefined reference to `curl_global_cleanup'
/usr/lib/gcc/i686-linux-gnu/4.6.1/../../../../lib/libphobos2.a(curl_12fd_140.o): In function `_D3std3net4curl4HTTP4Impl6__dtorMFZv':
std/net/curl.d:(.text._D3std3net4curl4HTTP4Impl6__dtorMFZv+0x12): undefined reference to `curl_slist_free_all'
/usr/lib/gcc/i686-linux-gnu/4.6.1/../../../../lib/libphobos2.a(curl_12fd_140.o): In function `_D3std3net4curl4HTTP3dupMFZS3std3net4curl4HTTP':
std/net/curl.d:(.text._D3std3net4curl4HTTP3dupMFZS3std3net4curl4HTTP+0x53): undefined reference to `curl_slist_append'
[snip]
が、私は正確に同じ結果を得ます。私はlibcurl4-opensslをインストールしました。このコンピュータにsimple C curlプログラムを作成しても問題ありません(gcc simple.c -lcurl
)。私はこれを理解するためにここからどこを見るか分からない。
アップデート:ここではdmd -v
に従って、リンカーが呼び出される方法です。
gcc source.o -o source -m32 -lcurl -Xlinker -L/usr/lib -Xlinker -L/usr/lib64 -Xlinker --no-warn-search-mismatch -Xlinker --export-dynamic -lphobos2 -lpthread -lm -lrt
'-v'(' dmd -v source.d -L-lcurl')を実行して、リンカの呼び出し方法を調べてみてください。 – kennytm
@KennyTM情報と一緒に投稿を更新しました。 – eco