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/程序:=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/lib/gcc/x86_64-linux-gnu/5/5/:/usr/lib/lib/gcc/x86_64-linux-gnu/://:/usr/lib/gcc/x86_64-linux-gnu/5/5/:/usr/lib/lib/gcc/x86_64-linux-gnu/:/usr/lib/lib/lib/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/bin/x86_64-linux-gnu/:/usr/lib/lib/gcc/x86_64-linux-gnu/5/../../../../../../../../../../x86_64-linux-gnu/bin/bin/bin/bin/bin/bin/bin/bin/bin/bin/bin/bin/bin/bin/bin/bin/库:=/usr/lib/gcc/x86_64-linux-gnu/5/5/:/usr/lib/lib/gcc/x86_64-linux-gnu/5/../../../gnu/lib/x86_64-linux-gnu/5/:/usr/lib/lib/gcc/x86_64-linux-gnu/5/../../../../../../../../../../linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../../../x86_64-linux-gnu/lib/../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/x86_64-linux-gnu/5/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/lib/x86_64-linux-gnu/5/:/usr/lib/lib/x86_64-linux-nux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../../../../x86_64-linux-gnu/lib/lib/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../../:/lib/:/usr/lib/p>>
我做错了什么?
弄清楚了。
在同一对象(.o)文件中链接的库和可执行文件。
'arduino'的东西是关于不应该存在的外部变量(复制和帕斯特代码问题)。
- 在 /usr/local/lib 下找不到库
- bitbake-grpc交叉编译/配置失败,错误为c-ares::care引用文件/usr/lib/libcares.s
- C++ 可执行文件在运行时找不到库,即使它在 /usr/lib 中(在 Linux 上)
- 没有规则来设定目标'/usr/lib/x86_64-linux-gnu/libboost_filesystem.so'
- Java System.loadLibrary 不会在 /usr/lib/x86_64-linux-gnu/ 文件夹中查
- 带有定制 GLFW 二进制 /usr/bin/ld 的 Centos 7: /usr/local/lib/libglfw3.a(init.c.o):".text"部分中无法识别的重定位 (0x2a)
- C++: 错误: opencv_core: 即使所需的 .so 文件位于 /usr/lib/ 中,也没有这样的文件或目录
- ld:找不到文件:/usr/lib/crt1.o
- 如何将我的控制台应用程序链接到使用 clang++ 作为编译器的 OSX 环境中的 /usr/local/lib 中存在
- 如何在 C++ 中修复"/usr/bin/ld: warning: liblber-2.4.so.2, needed by //usr/lib/x86_64-linux-gnu/libcurl-gnu
- 在使用 bazel 构建一个简单的应用程序时,得到错误在 '/usr/lib/java/jdk1.8.0_74/bin/java' 找不到 java
- dyld:库未加载:libicui18n.54.dylib 引用自:/usr/local/lib/libxerces-c
- 使用/usr/lib/i386-linux-gnu而不是/usr/lib/x86_64-linux-gnu在CMake中
- G 不会链接到/usr/lib/中的库
- Cmake,在 /usr/local/include 中查找头文件,在 /usr/local/lib 中查找库
- "/usr/lib/libstdc .so.6: version `GLIBCXX_3.4.15' not found"是什么意思,我该如何解决?
- "/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.15' not found`",如何解决?
- 捆绑的动态库:继续在/usr/local/lib中查找
- make[2]: *** 没有规则在 CGAL 中将目标 '/usr/lib/i386-linux-gnu/libmpfr.so'
- [UnixODBC][驱动程序管理器]无法打开 lib '/usr/lib/libmyodbc.so' :找不到文件,但文件存在