簡體   English   中英

g ++不會鏈接到/ usr / lib /中的庫

[英]g++ will not link to library in /usr/lib/

我已經創建了一個庫並將其安裝在/ usr / lib中(使用cmake),例如:

set(CMAKE_INSTALL_PREFIX /usr/) 
target_link_libraries(ssd1306)
set_target_properties(ssd1306 PROPERTIES   VERSION 1.0.0   SOVERSION 1 )
install(TARGETS ssd1306 DESTINATION lib)   
install(FILES ${SSD1306_HEADERS} DESTINATION include)

這工作正常,庫存在我的文件系統上:庫:

ls -l / usr / lib / libssd1306 *

/usr/lib/libssd1306.so -> libssd1306.so.1
/usr/lib/libssd1306.so.1 -> libssd1306.so.1.0.0
/usr/lib/libssd1306.so.1.0.0

標題:

ls -l /usr/include/ssd1306.h

/usr/include/ssd1306.h

然后我寫了一個使用該庫的程序(再次使用cmake):

target_link_libraries(ssd1306-info libssd1306)

但由於某種原因,它不會在編譯時鏈接到我的庫:

/ usr / bin / ld:找不到-llibssd1306

找到頭文件並創建了目標文件,但鏈接失敗。

當然/ usr / lib /在g ++搜索路徑中:

g++ -print-search-dirs

安裝:/ usr / lib / gcc / x86_64-linux-gnu / 5 / programs:= / usr / lib / gcc / x86_64-linux-gnu / 5 /:/ usr / lib / gcc / x86_64-linux-gnu / 5 /:/ usr / lib中/ GCC / x86_64的-Linux的GNU /:/ usr / lib中/ GCC / x86_64的-Linux的GNU / 5 /:/ usr / lib中/ GCC / x86_64的-Linux的GNU /:/ usr / lib中/gcc/x86_64-linux-gnu/5/../../../../x86_64-linux-gnu/bin/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux -gnu / 5 /../../../../ x86_64的-Linux的GNU /斌/ x86_64的-Linux的GNU /:/ usr / lib中/ GCC / x86_64的-Linux的GNU / 5 /../ ../../../x86_64-linux-gnu/bin/ libraries:= / usr / lib / gcc / x86_64-linux-gnu / 5 /:/ usr / lib / gcc / x86_64-linux-gnu / 5 /../../../../x86_64-linux-gnu/lib/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/../ .. /../../x86_64-linux-gnu/lib/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../../x86_64 -linux-GNU / lib中/../ LIB /:/ usr / lib中/ GCC / x86_64的-Linux的GNU / 5 /../../../ x86_64的-Linux的GNU / 5 /:/ usr / lib中/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/../../ .. /../lib/:/lib/x86_64-linux-gnu/5/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/5 /:在/ usr /李 B / x86_64的-Linux的GNU /:/ usr / lib中/../ LIB /:/ usr / lib中/ GCC / x86_64的-Linux的GNU / 5 /../../../../ x86_64的Linux的-gnu / LIB /:/ usr / lib中/ GCC / x86_64的-Linux的GNU / 5 /../../../:/ LIB /:/ usr / lib中/

我做錯了什么?

弄清楚了。

庫和可執行文件都鏈接在同一個對象(.o)文件中。

'arduino'的東西是一個外部變量,不應該存在(復制和粘貼代碼問題)。

暫無
暫無

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

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