CMake(Android工具链)-运行link命令时出错:没有这样的文件或目录

CMake(Android工具链)-运行link命令时出错:没有这样的文件或目录,android,c++,linux,cmake,toolchain,Android,C++,Linux,Cmake,Toolchain,我正在使用CMake构建Android项目。 “android.toolchain.cmake”工具链用于构建项目 所有环境变量都按照android cmake使用部分中的描述进行设置。 以下选项变量设置为环境变量 和工具链 ANDROID_独立工具链 安卓阿比 ANDROID_原生_API 安卓系统 CC和CXX分别指向AndroidABI gcc和AndroidABI-g++ CMAKE正在成功生成Make文件,但当我“Make”项目时抛出“运行链接命令时出错:没有这样的文件或目录” lin

我正在使用CMake构建Android项目。 “android.toolchain.cmake”工具链用于构建项目

所有环境变量都按照android cmake使用部分中的描述进行设置。 以下选项变量设置为环境变量 和工具链 ANDROID_独立工具链 安卓阿比 ANDROID_原生_API 安卓系统 CC和CXX分别指向AndroidABI gcc和AndroidABI-g++

CMAKE正在成功生成Make文件,但当我“Make”项目时抛出“运行链接命令时出错:没有这样的文件或目录”

link.txt的详细信息如下所示

*cd/Extra/svnroot/2014_Project/build/project123&/usr/bin/cmake-E cmake_link_script CMakeFiles/project123dir/link.txt--verbose=1

CMAKE_C_编译器-fPIC-Wno psabi-sysroot=/path_to_sysroot\u dir/sysroot-fPIC-funwind tables-finline limit=64-fsigned char-no规范前缀-march=armv7-a-mfloat abi=softfp-mfpu=vfpv3-d16-fdata节-ffunction节-Wa,--noexecstack-Wno缺少字段初始值设定项-Wno严格别名-Wno已弃用-Wno未使用-Wno未使用变量-Wsign比较-Wsequence point-Wunused but set variable-Wall-Wextra-Wno未使用参数-fno严格别名-pthread-Wl,-fix-cortex-a8-Wl,-无未定义-Wl,-允许shlib未定义-Wl,-gc sections-fuse ld=gold-Wl,--z,noexecstack-Wl,-z,relro-Wl,-z,now-shared-Wl,-soname,libproject123.so-o../libproject123.so CMakeFiles/project123_Sources.dir/MyAdapter.cpp.o CMakeFiles/project123_Sources.dir/SystemInfo.cpp.o CMakeFiles/ project123_Sources.dir/ServiceControl.cpp.o CMakeFiles/ project123_Sources.dir/Wrapper.cpp.o CMakeFiles/ project123_Sources.dir/Service.cpp.o CMakeFiles/ project123_Sources.dir/MemMap.cpp.o CMakeFiles/ project123_Sources.dir.dir/Trace.cpp.o -L/path_to_utoolchain_dir/android toolchain/bin/armeabi-v7a -L/Extra/svnroot/2014年第四季度移动/构建
-L/path_至第三方_lib/zlib-1.2.7/lib
-L/path_至第三方_lib/libzip-0.11.1
-L/path\u to\u thirdparty\u lib/boost\u 1\u 53\u 0/lib安卓
-L/path_至第三方_lib/curl-7.26.0-patch/lib -L/path_至第三方_lib/fips-openssl-1.0.1g/lib/path_至第三方_lib /boost_1_53_0/lib android/libboost_date_time-gcc-mt-1_53.a /路径为第三方lib/boost\u 1\u 53\u 0/lib android/libboost\u filesystem-gcc-mt-1\u 53.a /路径到第三方库/boost\u 1\u 53\u 0/lib android/libboost\u system-gcc-mt-1\u 53.a/path\u到第三方库 /boost_1_53_0/lib android/libboost_thread-gcc-mt-1_53.a /通往第三党自由党的道路 /boost_1_53_0/lib android/libboost_程序_options-gcc-mt-1_53.a /通往第三党自由党的道路 /boost_1_53_0/lib android/libboost_serialization-gcc-mt-1_53.a /路径_到第三方_lib/curl-7.26.0-patch/lib/libcurl.a /路径\至\第三方\ lib/fips-openssl-1.0.1g/lib/libssl.a /路径\至\第三方\ lib/fips-openssl-1.0.1g/lib/libcrypto.a /路径到第三方lib/zlib-1.2.7/lib/libz.a /路径到第三方lib/libzip-0.11.1/libzip.a-ldl-lrt “/path_to_toolchain_dir/android toolchain/arm linux androideabi/lib/armv7-a/thumb/libstdc++.a” “/path_to_toolchain_dir/android toolchain/arm linux androideabi/lib/armv7-a/thumb/libsupc++.a”*

link.txt文件中的所有文件都指向正确的目录/路径,任何文件路径都没有问题。在link.txt文件中,不是使用编译器的实际路径,而是使用CMAKE_C_编译器。我认为这是造成问题的原因,因为“make”命令无法找到编译器的实际路径


如果您能帮我解决这个问题,我将不胜感激。

我最近遇到了同样的问题,我不明白为什么它不能用正确的路径替换CMAKE_C_编译器。因此,我最后要做的是修改android.toolchain.cmake,其中设置了cmake\u CXX\u CREATE\u YYY。从

set( CMAKE_CXX_CREATE_SHARED_LIBRARY "<CMAKE_C_COMPILER> ...")
set( CMAKE_CXX_CREATE_SHARED_MODULE  "<CMAKE_C_COMPILER> ...")
set( CMAKE_CXX_LINK_EXECUTABLE       "<CMAKE_C_COMPILER> ...")
set(CMAKE\U CXX\U创建\U共享\U库“…”)
设置(CMAKE\U CXX\U创建\U共享\U模块“…”)
设置(CMAKE\U CXX\U LINK\U可执行文件“…”)

set(CMAKE\U CXX\U创建\U共享\U库“…”)
设置(CMAKE\U CXX\U创建\U共享\U模块“…”)
设置(CMAKE\U CXX\U LINK\U可执行文件“…”)

CMake能够生成正确的link.txt。希望这有帮助。

谢谢!你拯救了这一天:)
set( CMAKE_CXX_CREATE_SHARED_LIBRARY "<CMAKE_CXX_COMPILER> ...")
set( CMAKE_CXX_CREATE_SHARED_MODULE  "<CMAKE_CXX_COMPILER> ...")
set( CMAKE_CXX_LINK_EXECUTABLE       "<CMAKE_CXX_COMPILER> ...")