我在android studio遇到过这个问题。我将制作在 android 项目中使用的 native c 代码。我使用cmake。为了 curl 一些 url,我在 CMakeLists.txt 中包含了一些库。以下是我的 CMakeLists.txt 文件内容。
cmake_minimum_required(VERSION 3.4.1)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE BOTH)
set(CURL_INCLUDE_DIR "/usr/include")
set(CURL_LIBRARY "-lcurl")
find_package(CURL REQUIRED)
include_directories(${CURL_INCLUDE_DIRS})
add_library(native-lib SHARED native-lib.cpp )
find_library(log-lib log )
target_link_libraries(native-lib ${CURL_LIBRARIES} ${log-lib})
然后我遇到了以下 fatal error 。
/usr/include/stdint.h:26:10: fatal error: 'bits/libc-header-start.h' file not found
#include<bits/libc-header-start.h>
^~~~~~~~~~~~~~~~~~~~~~~~~~
有人能帮帮我吗?请...
最佳答案
交叉编译适用于所有类型设备的 curl 库可能是不正确的。我找到了三种类型的库:armeabi
、armeabi-v7a
和 x86
。而64位架构的cpu在操作系统的自适应功能下可以自动执行32位程序。这三个库在cocos2d-x game-source-project 中常见。所以本文读者应该使用ndk-build而不是cmake来达到这个条件,suit-target-device。
关于Android CMake "fatal error: ' 位/libc-header-start.h' 找不到文件”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56763861/