2017-08-08 88 views
0

我在獲取g ++鏈接curl lib文件時遇到了一些問題。我正在使用Visual Studio 2017與Linux開發插件和Ubuntu服務器17.04。g ++無法鏈接捲曲lib文件

curl-config --libs給出-Lcurl的輸出,我嘗試添加到Project settings > Linker > Command Line > Additional options的鏈接器選項中。我還將--cflags輸出添加到編譯選項。這並沒有解決這個問題。

然後我嘗試了網站的源代碼,並使用make和make install。 curl-config --libs給了我一個-L/usr/local/lib -lcurl的不同輸出。我改變了鏈接器中的選項,但仍然無效。

鏈接器輸出說很多「未定義的引用」,然後捲曲方法。我在cpp文件中有#include <curl/curl.h>

任何想法?
謝謝

回答

1

對於缺省安裝,您將指定curl庫到gcc-lcurl,如curl-config --libs所報告。而通過這個由VCLinux產生的gcc命令行上,在VS項目屬性添加curl附加庫的依賴線下鏈接/輸入。請注意,您只輸入curl,VCLinux提供-l,並且gcc鏈接器將其擴展爲實際文件名libcurl.a(或如果鏈接共享庫,則爲libcurl.so)。

您通常不必指定庫搜索路徑,因爲/usr/lib等會自動位於庫搜索路徑中。以Debian 9爲例,libcurl.a/usr/lib/i386-linux-gnu。但是如果你在非標準的地方安裝捲曲,添加路徑到附加庫目錄根據鏈接器/通用。如果您從Linux發行版安裝curl,請記住安裝開發文件;在Debian上,這是包libcurl4-gnutls-dev

捲曲與pkg-config如此兼容,以替代直接輸入路徑和庫的名稱,就可以在指定C++/全部選項/附加選項%24(pkg-config --libs libcurl)%24(pkg-config --cflags libcurl)接頭/所有選項/附加選項。 請注意,%24是編碼$,因爲否則Visual Studio會嘗試(並失敗)將該字符串解釋爲宏。

+0

非常感謝,修復它。 – oliverjrose99

0

是因爲沒有h之後。在你的包括?除此之外,Visual Studio還需要知道頭和庫的搜索路徑。它可以搜索構建輸出或它的一些默認目錄,即VC++目錄。除此之外,您必須通過使用其他附近的菜單來告訴它在哪裏搜索。

+0

對不起,這是一個拼寫錯誤。現在修復它。 – oliverjrose99