NDK 链接库与 cmake

短剑

我有一个执行 opengl (es 2.0) 渲染的 c++ 库,我想在 android 上使用它。将库与target_link_libraries(mylib log GLESv2)链接时收到以下错误:

ld: error: cannot open crtbegin_so.o: No such file or directory
ld: error: cannot open crtend_so.o: No such file or directory
ld: error: cannot find -llog
ld: error: cannot find -lGLESv2
ld: error: cannot find -lm
ld: error: cannot find -lstdc++
ld: error: cannot find -lm
ld: error: cannot find -ldl
ld: error: cannot find -lc
ld: error: cannot find -ldl

如果我从 android ndk 手动提供特定目录,它就可以工作。在 cmake 中,这看起来类似于:

link_directories( ${ANDROID_NDK}/platforms/${ANDROID_API}/arch-${ANDROID_ABI}/usr/lib )

我想知道这是否是解决错误的正确方法。在这个简单的例子中,不需要额外定义 link_directories。与我的图书馆有何不同?

短剑

造成这种情况的原因很简单。我在我的 cmake 文件中覆盖了编译器标志:

SET(CMAKE_CXX_FLAGS "-foo" )

当我把它改成

SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -foo" )

链接问题消失了。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

CMake链接库(.a / .so)

来自分类Dev

CMake:目标链接库

来自分类Dev

CMake链接库目标链接错误

来自分类Dev

Cmake OpenCV无法指定链接库

来自分类Dev

如何使用CMake链接库?

来自分类Dev

如何使用cmake正确链接库?

来自分类Dev

Cmake OpenCV无法指定链接库

来自分类Dev

使用CMake链接库OpenSubdiv

来自分类Dev

CMake:如何从并行目录链接库

来自分类Dev

CMake 无法正确链接库

来自分类Dev

子目录中的CMake链接库

来自分类Dev

在cmake中显示目标的链接库列表

来自分类Dev

如何在CMake中使用动态链接库?

来自分类Dev

CMake:反正有强制链接库的问题吗?

来自分类Dev

CMAKE查找程序包,但不链接库

来自分类Dev

CMake - 链接库未在 MSVC 下显示

来自分类Dev

对 NDK 中的不同库使用 ndk-build 和 cmake

来自分类Dev

CMake用户构建的库;无法为目标指定链接库

来自分类Dev

CMake没有获取链接库的INTERFACE_INCLUDE_DIRECTORIES

来自分类Dev

cmake target_link_libraries()启动错误无法为目标“调试”指定链接库

来自分类Dev

收到CMake错误:无法为非项目创建的目标指定链接库

来自分类Dev

无法使用CMake的autouic包含链接库中的ui文件

来自分类Dev

在CMAKE配置的NDK版本中链接Google Tango本机SDK

来自分类Dev

CMake:库链接要求

来自分类Dev

添加预构建库时Android NDK Cmake默认根目录

来自分类Dev

在Android上使用NDK链接SQLite库

来自分类Dev

如何链接Android NDK共享库?

来自分类Dev

使用CMake链接静态库

来自分类Dev

CMake链接安装共享库