簡體   English   中英

找不到-llib的庫。 (clang:錯誤:鏈接器命令失敗,退出代碼為1(使用-v查看調用))

[英]Library not found for -llib. (clang: error: linker command failed with exit code 1 (use -v to see invocation))

我正在開發一個以前完成並上傳到app store的項目。當我在Xcode 5.0中運行這個應用程序時,它工作正常,但是當我在Xcode版本5.1.1(5B1008)上運行時,我在兩個設備上都收到鏈接器錯誤和模擬器。

錯誤消息 - 找不到-llib的庫。 (clang:錯誤:鏈接器命令失敗,退出代碼為1(使用-v查看調用))

我已經搜索了很多,但我沒有得到任何關於Library not found for -llib錯誤Library not found for -llib 有什么我必須在構建設置中更改以解決此問題?

查看正在使用的-L選項的鏈接器命令行:

在此輸入圖像描述

然后使用TerminalFinder查看這些目錄中是否存在libXXX.a文件。 如果庫存在於其他位置,則需要配置庫搜索路徑

在此輸入圖像描述

但是,在應用程序中使用庫時,您在問題中未提供的一些詳細信息:

  • 庫是否構建為Xcode項目/工作區的一部分(如第一張圖片中所示)?
  • 庫是由第三方提供的二進制( .a )和頭文件(如第二個圖像)?

TL; DR:我在錯誤的目錄中運行make ,所以路徑搞砸了。

問題:

>make
linking ../build/release/yubikey-personalization-gui
/usr/x86_64-suse-linux/bin/ld: cannot find -llib
...

在編譯Yubikey個性化工具時遇到了這個問題。 我在Makefile跟蹤-llib調用,如下所示:

...
LINK = @echo linking $@ && g++
...
LIBS = $(SUBLIBS)  -L/usr/lib64 -L../lib/release -llib -lyubikey -lykpers-1 -lQtGui -L/usr/lib64 -L/usr/X11R6/lib -lQtCore -lpthread 
...
$(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS)

所以它設置了一個名為LINK的變量,它將打印“鏈接”,然后調用g++ ,這是編譯器。 然后設置var LIBS ,它將保存不祥的-llib 然后它編寫並運行命令$(LINK) ... $(LIBS) 其中使用參數-llib運行g++

這有什么作用? 結果是-l<something>告訴編譯器使用something -library。 所以它在這里請求名為lib的庫。 這是奇怪的通用。 我發現源代碼附帶了一個名為lib/的目錄,它位於../lib

所以從一個更高的目錄開始make修復它。

您應該從xcode項目中的其他鏈接器標志中刪除libstdc ++

https://stackoverflow.com/a/53103383/1344237

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM