/bin/ld找不到 *。 我正在尝试使用忍者在我的X86_64 Linux计算机中生成AARCH64应用程序。 Cmake Compile + Generation进行得很好。这似乎是一个交叉兼容问题。 但是当我运行忍者

问题描述 投票:0回答:1

[98/1000] Linking CXX executable /aarch64-linux-gnu/bin/ld: warning: myLibrary.so.39, needed by /home/project/astrosky/lib/astrosky.so, not found (try using -rpath or -rpath-link)

具有与

myLibrary.so.39
的符号链接。两个库都存在于同一目录中 +符号链接未断开。这些 *.so文件的架构为aarch64。 我已经完成的事情

ver ver ver我希望两个库存在并且是我希望它们的地方:
myLibrary.so.39.3

指定使用ldconfig作为aarhc64。
创建了我自己的文件,因此它指向具有 *.so文件的目录。我删除了LD缓存,并重新生成了LDConfig的高速缓存。
双检查了
/home/project/deps/

看到mylibrary.so.39,并且与mylibrary.so.39.3相称。它还看到

/etc/ld.so.conf.d/aarch-linux-gnu.conf

的所有其他库。
    SETENV VAR:
  1. ldconfig -p
    
    
  2. 我看过的资源,但没有解决这个问题:
  3. /usr/bin/ld找不到共享库
  4. /usr/bin/ld找不到库
  5. /usr/bin/ld找不到库
  6. 
        

2东西

将搜索路径穿越到
    /home/project/deps/
  • FAICT,不是Runtime
  • 链接器(使用
  • LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/project/depsrespld
  • 配置,而是您的
  • 链接编辑器(akaLD_LIBRARY_PATH
您可以告诉您的
c++ linux gcc
1个回答
0
投票
在哪里可以通过使用

/etc/ld.so.conf.d/*.conf

标志来查找动态库(又称

ld

library名称

列出链接编辑器

将库与
-L
标志链接,它将真正(仅)使其搜索以
-L/path/to/mlib -lmyLibrary的前缀。也就是说,-l
将the将在搜索路径中存在的文件。
如果您的库缺少

lib

前缀(例如,如您在Q中所示),我认为您需要将完整的路径传递到链接器(例如,没有任何-lmyLibrary

libmyLibrary.so
flags)
    

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.