提问者:小点点

G++不会链接到/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)

这工作得很好,并且库存在于我的文件系统中:the library:

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: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/..//../x86_64-linux-gnu/5/..//../:/lib/:/usr/lib/

我做错了什么?


共1个答案

匿名用户

想出来了。

库和可执行文件在同一对象(。o)文件中链接。

“Arduino”的内容是关于一个不应该存在的外部变量(复制和粘贴代码问题)。

相关问题


MySQL Query : SELECT * FROM v9_ask_question WHERE 1=1 AND question regexp '(g++|链|接到|usr|lib|中|库)' ORDER BY qid DESC LIMIT 20
MySQL Error : Got error 'repetition-operator operand invalid' from regexp
MySQL Errno : 1139
Message : Got error 'repetition-operator operand invalid' from regexp
Need Help?