[英]g++ can't link curl lib files
我在獲取 g++ 以鏈接 curl 庫文件時遇到一些問題。 我正在使用帶有 linux 開發插件和 Ubuntu Server 17.04 的 Visual Studio 2017。
curl-config --libs
給出了 -Lcurl 的-Lcurl
,我嘗試將其添加到Project settings > Linker > Command Line > Additional options
中的 linker 選項中。 我還在編譯選項中添加了--cflags
output。 這並沒有解決問題。
然后我嘗試了網站上的源代碼並使用了 make 和 make install。 curl-config --libs
給了我一個不同的 output 的-L/usr/local/lib -lcurl
。 我更改了 linker 中的選項,但這仍然不起作用。
linker output 說了很多“未定義的引用”,然后是 curl 方法。 我在 cpp 文件中有#include <curl/curl.h>
。
有任何想法嗎?
謝謝
默認安裝時,您將使用-lcurl
將curl
庫指定為gcc
,如curl-config --libs
報告的curl-config --libs
。 並將其傳遞給VCLinux生成的gcc
命令行,請將curl
添加到 額外 VS項目屬性中“ 鏈接器 / 輸入”下的“ 庫依賴關系”行。 請注意,您只輸入curl ,VCLinux提供了-l
,並且gcc鏈接器將其擴展為libcurl.a
(或libcurl.so
的實際文件名)(如果您要鏈接共享庫)。
通常不必指定庫搜索路徑,因為/usr/lib
等自動在庫搜索路徑上。 例如,在Debian 9上, libcurl.a
位於/usr/lib/i386-linux-gnu
。 但是,如果在非標准位置安裝curl,請在Linker / General下將路徑添加到Additional Library Directories 。 如果要從Linux發行版安裝curl,請記住也要安裝開發文件。 在Debian上,這是軟件包libcurl4-gnutls-dev
。
curl與pkg-config
兼容,因此,除了直接輸入路徑和庫名稱之外,還可以在C ++ / 所有選項 / 附加選項中指定%24(pkg-config --cflags libcurl)
和%24(pkg-config --libs libcurl)
在鏈接器 / 所有選項 / 其他選項中 。 請注意, %24
是已編碼的$
因為否則Visual Studio會嘗試(失敗)將字符串解釋為宏。
是因為后面沒有h。 在你的包括? 除此之外,Visual Studio還需要知道標題和庫的搜索路徑。 它可以搜索生成輸出或其某些默認目錄(即VC ++目錄)。 除此之外,您還必須使用附近的一些其他菜單來告訴它要搜索的位置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.