gpt4 book ai didi

android - CMake交叉编译包 : how to set linker path to find compiler support library?

转载 作者:太空宇宙 更新时间:2023-11-04 10:40:51 31 4
gpt4 key购买 nike

我正在尝试交叉编译 qhull Android 库,在 Linux x86-64 主机上。我是 CMake 的新手,但对其他构建系统工具很有经验。

根据我找到的所有建议,我已经设置了一个工具链文件,它适用于其他几个包。然而,无论我尝试什么,似乎都没有增加一个或多个 qhull 可执行程序的链接器路径。问题是它找不到 Android NDK 的 libsup++.a,这是其编译器 (GCC) 的隐式依赖项。如果我使用生成的链接命令并手动添加 -Lpath_to_libsup++.a,则链接成功。

在我的工具链文件中,我尝试过的有:

  • CMAKE_FIND_ROOT_PATH
  • link_directories()
  • CMAKE_EXE_LINKER_FLAGS

我没有发现它的 CMakeLists.txt 有任何异常,至少就第一个故障点 (user_eg3) 而言。

如果可能的话,我不想给库打补丁。我知道很多其他人在 Android 上使用它(它是点云库的依赖项),所以我认为我可能遗漏了一个步骤。

顺便说一句,我使用的是 CMake v3.4.3、Android NDK r10e 和 qhull v7.2.0。

最佳答案

我找到了解决方法。

this post , Florian提到 CMake 在内部将 CMAKE_EXE_LINKER_FLAGS_INIT 设置为 $ENV{LDFLAGS}。我发现如果我设置环境变量 LDFLAGS=-Lpath_to_libsup++.a,它会传递给链接命令,现在成功了。

我仍然想知道这个问题的正确 CMake 解决方案。或者,如果问题出在 qhull 上,那么也许有人可以查看它的 CMakeLists.txt(上面链接)并指出它做错了什么。

关于android - CMake交叉编译包 : how to set linker path to find compiler support library?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35278102/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com