可执行链接正确,但无法加载库

问题描述

我在/opt/local中安装了Boost和Served REST API程序包。

这是我的CmakeLists.txt中“有意义的”部分:

find_package(PkgConfig required)
pkg_check_modules(SERVED_PKG required IMPORTED_TARGET served)

add_executable( rest_server rest_server.cpp )
target_link_libraries(rest_server PUBLIC PkgConfig::SERVED_PKG)

它确实创建了一个可执行文件,并将其与所需的库链接

但是,它以某种方式无法包含该库的路径:

$ otool -L cmake-build-debug/rest_server 
cmake-build-debug/rest_server:
    libserved.1.4.dylib (compatibility version 0.0.0,current version 1.4.0)
    /usr/lib/libc++.1.dylib (compatibility version 1.0.0,current version 902.1.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0,current version 1281.100.1)

其中,当我尝试通过CLion IDE运行它时,导致无法加载libserved.1.4.dylib库:

/Users/ur20980/src/security2/cmake-build-debug/rest_server
dyld: Library not loaded: libserved.1.4.dylib
  Referenced from: /Users/ur20980/src/security2/cmake-build-debug/rest_server
  Reason: image not found

Process finished with exit code 6

当我从终端手动调用可执行文件时,似乎没问题:

$ cmake-build-debug/rest_server 
Hello,World!

怎么了?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)