【发布时间】:2015-08-11 03:41:38
【问题描述】:
我正在尝试使用带有单个 c=99 标志的 LLVM 6(只是 xcode 的默认值)在 Mac 上编译的 C/C++ 代码,但在 NDK 中这不想编译(我得到大量的“未定义引用”错误)。
在我的 Application.mk 中,我的 APP_STL 是这样的:
APP_STL := gnustl_shared
在编译时,这会调用这个库:
[armeabi] Prebuilt : libgnustl_shared.so <= <NDK>/sources/cxx-stl/gnu-libstdc++/4.8/libs/armeabi/thumb/
理论上(根据文档)这个 APP_STL := gnustl_shared 应该触发 LLVM 库,这似乎没有做。
但是,在同一个 NDK 安装文件夹中,我还有其他库,它们被标记为 LLVM:
如何强制 APP_STL 语句使用 llvm-libc++ 或 llvm-libc++abi 库?
编辑:根据要求,这里也是我在编译时遇到的错误列表:
【问题讨论】:
-
您是否愿意与我们分享其中的一些错误?
-
我刚刚进行了编辑,其中包含我遇到的错误的简短列表
-
1) 该错误似乎与 Application.mk 中缺少的一些
.cpp文件有关(例如,实现InteractionManager::OnInteractionUpdate(...)的文件)。 2)你可以通过设置值APP_STL := c++_shared来使用llvm的libc。此外,llvm-libc++可能仅支持与 clang 编译器结合使用 -
我正在尝试将 .cpp 文件添加到清单文件中,但链接几乎每个 .cpp 文件似乎都存在问题,而且我有超过 3000 个文件。如何使用 clang 编译器?就像这样:NDK_TOOLCHAIN_VERSION:=clang?
-
工具链:是的,如果这不起作用,请尝试在其后面使用明确的版本号...
clang-1.2。如果我们看不到它们,就无法帮助修复您的链接器错误
标签: android c++ android-ndk