繁体   English   中英

使用cmake的NDK链接库

[英]NDK linking library with 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" )

链接问题消失了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM