[英]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.