Я столкнулся с этой проблемой в студии Android. Я собираюсь сделать собственный код C, который используется в проекте Android. Я использую cmake. Чтобы свернуть какой-то 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})
И тут я встретил следующую фатальную ошибку.
/usr/include/stdint.h:26:10: fatal error: 'bits/libc-header-start.h' file not found
#include<bits/libc-header-start.h>
^~~~~~~~~~~~~~~~~~~~~~~~~~
Кто-нибудь может мне помочь? Пожалуйста...
Спасибо за ваш ответ. Кстати, вместо использования <CMAKE_FIND_ROOT_PATH_MODE_*> я должен использовать библиотеку curl c, подходящую для моей целевой платформы, вы имели в виду? Интересно, упомянете ли вы, где я могу найти и включить эту библиотеку. Хочешь мне помочь?
Как я уже сказал, вам нужна библиотека curl, подходящая для целевой платформы. Я не знаю, где его получить.
Понимаю. Спасибо большое.
Вероятно, неправильно невозможно кросс-компилировать библиотеку curl, подходящую для всех типов устройств. Я нашел три типа библиотек: armeabi, armeabi-v7a и x86. Однако процессор с 64-битной архитектурой может автоматически выполнять 32-битные программы под адаптивной функцией операционной системы. Эти три библиотеки обычно находятся в cocos2d-x game-source-project. Таким образом, читатель этой статьи должен использовать ndk-build вместо cmake, чтобы достичь этого условия, костюм-целевое-устройство.
Использование
CMAKE_FIND_ROOT_PATH_MODE_*предполагает, что вы кросс-компиляция. И системный каталог включения/usr/includeредко полезен для кросс-компиляции. Вам нужно использовать библиотекуcurl, созданную для целевой платформы, а не для основной.