goo*_*ons 5 static shared cmake libraries
我已经做过几次了,但是这次我还是被卡住了。我有一个可执行文件“ myapp”和一个自己的共享库“ mylib”。在我的cmakelist中,我有以下内容:
ADD_LIBRARY(mylib SHARED ${SOURCES_LIB})
INSTALL(TARGETS mylib DESTINATION .)
ADD_EXECUTABLE(myapp ${SOURCES_APP})
TARGET_LINK_LIBRARIES(myapp ${QT_LIBRARIES} mylib)
INSTALL(TARGETS myapp DESTINATION .)
Run Code Online (Sandbox Code Playgroud)
一切都能正确编译和链接,但是当我启动myapp时,出现以下错误:
error while loading shared libraries: libmylib.so: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)
lib和可执行文件位于安装目录中。当我通过将以上cmakelists的第一行更改为以下内容来使我的库成为静态库时:
ADD_LIBRARY(mylib STATIC ${SOURCES_LIB})
Run Code Online (Sandbox Code Playgroud)
那么一切都会100%有效。
有人知道我在做什么错吗?
小智 6
在安装库和可执行文件的过程中,从可执行文件中剥离了用于查找库的运行时路径。因此,您的库必须驻留在运行时库搜索路径中。例如,在Linux下,启动可执行文件时,尝试将LD_LIBRARY_PATH设置为包含已安装库的目录。
| 归档时间: |
|
| 查看次数: |
12947 次 |
| 最近记录: |