如何解决cmake 什么时候不为 link_directories 生成“-L”标志?
这是我用来交叉编译 Android 共享库的简化 CMakeLists.txt。
cmake_minimum_required(VERSION 3.10)
project(MyTest)
link_directories($ENV{ANDROID_PREBUILT}/gcc/linux-x86/arm/arm-linux-androideabi-4.9/lib/gcc/arm-linux-androideabi/4.9)
add_library(MyTest SHARED MyTest.cpp)
构建时,我得到的错误是:
xxx/gcc/linux-x86/arm/arm-linux-androideabi-4.9/bin/arm-linux-androideabi-ld:
error: cannot find -lgcc
我看到我指定的链接目录确实有 libgcc.a 文件。
在详细模式下运行 make 显示以下链接命令:
xxx/clang/host/linux-x86/clang-2690385/bin/clang++
--target=arm-linux-androideabi
--sysroot=xxx/ndk/current/platforms/android-23/arch-arm/usr
-fPIC -O3 -DNDEBUG -shared -Wl,-soname,libMyTest.so -o libMyTest.so
CMakeFiles/MyTest.dir/MyTest.cpp.o
看来 -L
标志没有由 cmake 生成。
如果我直接运行带有 -L
标志的上述命令,链接将正常进行并且共享库确实被创建。
谁能告诉我我错过了什么?
更新:
我尝试导出 LIBRARY_PATH
和 LDFLAGS
,但都被忽略了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。