android - cmake 何时不为链接目录生成“-L”标志?
问题描述
这是一个简化的 CMakeLists.txt,我用它来交叉编译 Android 的共享库。
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
但两者都被忽略了。
解决方案
推荐阅读
- javascript - 循环遍历 JavaScript 中的嵌套数组
- c++ - 尝试将对象分配给 C++ 中不同类型的对象
- c++ - 我应该为蓝牙库使用套接字还是 comport?
- javascript - 选择不同的选项值后更新 EJS 文件
- r - 将分钟 as.ITime() 添加到 as.ITime() 作为固定时间
- php - PHP - 使用 instanceof 记录 IDE 自动完成的变量类型
- php - 同一实体的多种形式
- apache - 在 htaccess 中掩码 URL 重写
- pytorch - Pytorch Lightning 在 ddp 模式下复制主脚本
- discord.js - 试图让我的命令只能由服务器所有者访问