CMake(Android工具链)-运行链接命令时出错:没有这样的文件或目录
CMake (Android Toolchain) - Error running link command: No such file or directory
我正在使用CMake来构建Android项目。"android.toolchain.cmake"工具链用于构建项目。
所有的环境变量都是按照android cmake的使用部分所述进行设置的。以下选项变量设置为环境变量和工具链ANDROID_STANDALONE_TOOLCHAINANDROID_ABIANDROID_NAMETIVE_APIANDROID_STLCC和CXX指向androidabi gcc&androidabi-g++分别
CMAKE成功地生成了Make文件,但当我"制作"项目时,它抛出了"运行链接命令时出错:没有这样的文件或目录"。
link.txt的详细信息如下
*cd/Extra/svnroot/2014Project/build/project123&//usr/bin/cmake-E cmake_link_script CMakeFiles/project123dir/link.txt--verbose=1
CMAKE_C_COMPILER-fPIC-Wno psabi-sysroot=/path_to_sysroot_dir/sysroot-fPIC-funwind tables-finline limit=64-带符号的char-无规范前缀-march=armv7-a-mfloat abi=softfp-mfpu=vfpv3-d16-fdata sections-ffunction sections-Wa,--noexecstack-Wno缺少字段初始值设定项-Wno严格别名-Wno已弃用-Wno未使用-Wno尚未使用的变量-Wsign compare-Wsequence point-Wunused但设置变量-Wall-Wextra-Wno没有使用的参数-fno严格别名-pthread-Wl,--fix-cortex-a8-Wl、--no未定义的-Wl、-allow shlib未定义的-Wl、--gc部分-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.oCMakeFiles/project123_Sources.dir/SystemInfo.cpp.o CMakeFiles/project123_Sources.dir/ServiceControl.cpp.o CMakeFiles/project123_Sources.dir/Rapper.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_toolchain_dir/android toolchain/bin/armeabi-v7a-L/Extra/svnroot/2014_Q4_Mobile/build
-L/path_to_thirdparty_lib/zlib-1.2.7/lib
-L/path_to_thirdparty_lib/libzip--0.111
-L/path_to_thirdparty_lib/browst_1_53_0/lib安卓
-L/path_to_thirdparty_lib/curl-7.26.0-patch/lib-L/path_to_thirdparty_lib/fips-opensl-1.0.1g/lib/path_to_third party_lib/boost_1_53_0/lib android/libboost_date_time-gcc-mt-1_53.a/path_to_thirdparty_lib/browst_1_53_0/lib-android/libboost_filesystem-gcc-mt-1_53.a/path_to_thirdparty_lib/browst_1_53_0/lib-android/libboostrongystem-gcc-mt-1_53.a/path_to_thirdparty_lib/boost_1_53_0/lib android/libboost_thread-gcc-mt-1_53.a/路径_to_第三方_lib/boost_1_53_0/lib android/libboost_program_options-gcc-mt-1_53.a/路径_to_第三方_lib/boost_1_53_0/lib android/libboostrongerialization-gcc-mt-1_53.a/path_to_thirdparty_lib/curl-7.26.0-patch/lib/libcurl.a/path_to_thirdparty_lib/fips-opensl-1.0.1g/lib/libssl.a/path_to_thirdparty_lib/fips-opensl-1.0.1g/lib/libcrypto.a/path_to_thirdparty_lib/zlib-1.2.7/lib/libz.a/path_to_thirdparty_lib/libzip-0.11/libzip.a-ldl-lrt"/path_to_toolchain_dir/androidtoolchain/arm linux androidabi/lib/armv7-a/thumb/libstdc++.a"/path_to_toolchain_dir/android toolchain/arm linux androidabi/lib/armv7-a/thumb/libsupc++.a"*
link.txt文件中的所有文件都指向正确的目录/路径,并且任何文件路径都没有问题。在link.txt文件中,它不是使用编译器的实际路径,而是使用CMAKE_C_compiler。我认为这是造成问题的原因,因为"make"命令无法找到编译器的实际路径。
如能为解决这一问题提供任何帮助,我们将不胜感激。
我最近遇到了同样的问题,不明白为什么它无法用正确的路径替换CMAKE_C_COMPILER。因此,我最终要做的是修改android.toolchain.cmake,其中设置了cmake_CXX_CREATE_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_CXX_CREATE_SHARED_LIBRARY "<CMAKE_CXX_COMPILER> ...")
set( CMAKE_CXX_CREATE_SHARED_MODULE "<CMAKE_CXX_COMPILER> ...")
set( CMAKE_CXX_LINK_EXECUTABLE "<CMAKE_CXX_COMPILER> ...")
并且CMake能够生成正确的link.txt。希望这能有所帮助。
- 读取文件的最后一行并输入到链接列表时出错
- C++-试图将函数指针推回到另一个CPP文件中的矢量时出错
- .h 和.cpp文件分离时出错,但仅使用 .h 文件时没有错误.我做错了什么?
- 在 C/C++ 中打开驻留在 "/sys/" 下的文件时出错
- 在头文件中定义变量不会出错
- 如何在多写入器情况下对文件支持的共享内存中的大页面出错
- JNI,使用两个 .so 文件时出错,其中一个文件需要另一个文件
- 生成文件中隐式规则中的 -c 标志出错
- 编译时出错 - 链接.cpp和头文件
- 从人员矢量插入和读取文件时出错
- LNK2019 在文件中调用静态成员的方法时出错.cpp
- ./main:加载共享库时出错:libopencv_highgui.so.4.0:无法打开共享对象文件:没有这样的文件或
- 猫鼬 - 包含标准C++库文件时出错
- 在f2c.h文件中定义min()max()宏时出错
- ASIOSDK;从hostsample.cpp生成mex文件时出错
- 使用emscripten将c++文件转换为wasm时出错
- 编译后可执行文件出错
- 头文件C++出错
- ftell 非常大的文件出错
- 从磁盘读取映像文件出错