【发布时间】:2019-06-26 01:09:39
【问题描述】:
我在 android studio 中遇到了这个问题。我将制作用于 android 项目的本机 c 代码。我用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:致命错误:找不到“bits/libc-header-start.h”文件
#include<bits/libc-header-start.h>
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
有人可以帮我吗?请...
【问题讨论】:
-
使用
CMAKE_FIND_ROOT_PATH_MODE_*表明您正在交叉编译。并且系统包含目录/usr/include很少用于交叉编译。您需要使用为目标平台构建的curl库,而不是为主机平台。 -
感谢您的回复。顺便说一句,我应该使用适合我的目标平台的 curl c 库,而不是使用
,你的意思是?我想知道您是否提到我在哪里可以找到并包含该库。你愿意帮助我吗? -
正如我所说,您需要适合目标平台的
curl库。我不知道从哪里获得它。 -
我明白了。非常感谢。