首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >未声明标识符“_ISspace”的使用

未声明标识符“_ISspace”的使用
EN

Stack Overflow用户
提问于 2019-07-09 03:15:03
回答 1查看 875关注 0票数 3

我正在尝试使用android-ndk-r20为android构建C库。我正在使用CMake构建我的库。

该体系结构为android-arm64。

问题是,在编译过程中会出现以下错误:

/home/erez/android-ndk-r20/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__locale:382:32:错误:使用未声明的标识符“_ISspace”

同样的错误也适用于所有类型的宏-- _ISprint_IScntrl等。

我试着在Google上查找它,但是没有提到这个宏,这很奇怪。

当我打开这个文件时,我确实看到了这个宏的一些用法。

我试图查找它,但找不到任何地方来定义这个宏。这让我感到困惑,因为我假设nkd/LLVM将包含所有所需的头和库,但我在任何地方都找不到这个标头。

这是我的CMake命令:

cmake -DCMAKE_CXX_FLAGS:STRING="-std=c++11“-DANDROID_NATIVE_API_LEVEL=24 -DTARGET=android -DANDROID_ABI=arm64-v8a -DTARGET=android -DBUILD_DATE=$(date +%Y-%m-%d) .././rootCmake;使VERBOSE=1安装;

有人知道我该怎么解决这个问题吗?

编辑:

根CMakeLists.txt:

代码语言:javascript
运行
AI代码解释
复制
project(Osn)
cmake_minimum_required(VERSION 2.8)

set(TARGET "android" CACHE STRING "Set the target ios mac32/64, linux32/64, android, win32/64")

# Static link the c++ library in case of a gcc compiler.
if (CMAKE_COMPILER_IS_GNUCC)
  include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/gcc_config.cmake)
endif()

if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
  include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/darwin.cmake)
elseif(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
  include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/linux.cmake)
elseif(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
  include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/msvc_config.cmake)
#elseif(${CMAKE_SYSTEM_NAME} MATCHES "iOS")
#  include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/ios-arm.cmake)
endif()

if (${TARGET} MATCHES "android")
  include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/android.cmake)
endif()

add_subdirectory(OsnClient/OsnClient)

#if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "iOS")
  add_subdirectory(OsnClientApp/OsnClientApp)
#endif()

srcs CMakelists.txt:

代码语言:javascript
运行
AI代码解释
复制
project(ProjectName)
cmake_minimum_required(VERSION 2.8)

set(OSN_ROOT ${CMAKE_CURRENT_SOURCE_DIR})
set(OSN_INCLUDE ${OSN_ROOT}/../../../include)
set(OSNCLIENT_EXPORTS on)


set(gabro_files ${CMAKE_CURRENT_SOURCE_DIR}/../../../gabro/${TARGET} )
if (${TARGET} MATCHES android)
  set(gabro_files ${CMAKE_CURRENT_SOURCE_DIR}/../../../gabro/${TARGET}-${ANDROID_ABI} )
endif()


if (${CMAKE_SYSTEM_NAME} MATCHES Windows)
  SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS}
/NODEFAULTLIB:libboost_date_time-vc100-mt-s-1_47.lib
....
....
/VERBOSE:LIB
")
endif()

add_definitions(-DGABRO_WIN32_API_STATIC)

set(src
  ${OSN_ROOT}/src1.cpp
  ${OSN_ROOT}/src2.cpp
)

include_directories(
  ${CMAKE_CURRENT_SOURCE_DIR}
  ${OSN_ROOT}
  ${gabro_files}/include
  ${OSN_INCLUDE}
)

if (${TARGET} MATCHES android)
  set(log_lib  ${ANDROID_NDK}/platforms/android-${ANDROID_NATIVE_API_LEVEL}/arch-${ANDROID_ARCH_NAME}/usr/lib )
endif()

link_directories(
  ${gabro_files}/lib
)


set(link_libs gabro_client_api_static)

if (WIN32)
  list(APPEND link_libs gabro_static_external-mt wininet )
elseif (${CMAKE_SYSTEM_NAME} MATCHES Darwin)
  list(APPEND link_libs gabro_static_external pthread z dl)
elseif (${TARGET} MATCHES android)
  list(APPEND link_libs gabro_static_external libOsnClient.so log)
else()
  list(APPEND link_libs gabro_static_external pthread dl rt)
endif()

if (${CMAKE_SYSTEM_NAME} MATCHES "ios")
   add_library(${PROJECT_NAME} STATIC ${src})
else()
   add_library(${PROJECT_NAME} SHARED ${src})
endif()

target_link_libraries(${PROJECT_NAME} ${link_libs} )

install(TARGETS ${PROJECT_NAME} 
  RUNTIME DESTINATION bin
  LIBRARY DESTINATION lib
  ARCHIVE DESTINATION lib
)

clang++ --版本:

安卓(5220042基于r346389c) clang版本8.0.7 (https://android.googlesource.com/toolchain/clang b55f2d4ebfd35bf643d27dbca1bb228957008617) (https://android.googlesource.com/toolchain/llvm 3c393Fe7a7e13b0fba4ac75a01a683d7a5b11cd)(基于llv8.0.7svn)目标:x86_64-未知-linux-gnu线程模型:

EN

回答 1

Stack Overflow用户

发布于 2020-08-14 02:29:15

确保您没有定义__GLIBC__。Android不使用glibc。

来自问题中的文件__locale

代码语言:javascript
运行
AI代码解释
复制
class _LIBCPP_TYPE_VIS ctype_base
{
public:
#if defined(__GLIBC__)  // <-- Here's the problem
    typedef unsigned short mask;
    static const mask space  = _ISspace;
    static const mask print  = _ISprint;
    static const mask cntrl  = _IScntrl;
    static const mask upper  = _ISupper;
...
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56951331

复制
相关文章
GitHub学习笔记(1)----SSH实现本地库和远程库的互传
建立远程库后,你就可以在任意一台电脑上拷贝,修改远程库的内容,接下来介绍一下如何操作。
小火柴棒
2019/04/21
8220
使用Rsync和Nginx创建Rocky Linux 8.3 RC1本地存储库镜像
生产环境:Rocky Linux release 8.3, Nginx 1.14.1
欧巴云
2021/05/08
8690
使用Rsync和Nginx创建Rocky Linux 8.3 RC1本地存储库镜像
利用 GitHub Action 实现镜像存储库
Github Action 是 Github 推出的一项持续集成服务, 我们可以利用 Github Action 来实现多平台测试代码, 多平台打包, 访问远程服务等等.
xcsoft
2022/03/10
7720
如何创建私有Python包存储库
Python包的基本脚手架是一个包含与用户交互的代码的__init__.py文件。
良莉
2018/09/03
4.6K0
如何创建私有Python包存储库
使用Docker为Visual Studio Extensions创建专用存储库
如今的扩展和项目模板非常普遍; 我们每天都在Visual Studio中使用扩展。
用户3382876
2018/11/07
1.2K0
如何安装Git并克隆GitHub存储库
GitHub是一个允许开发人员使用Git版本控制系统进行协作的网站。通过Git和GitHub,来自世界各地的程序员可以在有组织的最新流程中分享想法和代码。
Techeek
2018/09/13
4.1K0
如何安装Git并克隆GitHub存储库
git使用教程之创建本地库并关联远程库(笔记整理篇一)
笔者个人博客: https://qiucode.cn/blog 微信小程序 [秋码淘好货]
游离于山间之上的Java爱好者
2022/09/21
4350
git使用教程之创建本地库并关联远程库(笔记整理篇一)
Python 文件存储:pickle 和 json 库的使用
✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。 🍎个人主页:小嗷犬的博客 🍊个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。 🥭本文内容:Python 文件存储:pickle 和 json 库的使用 ---- Python 文件存储:pickle 和 json 库的使用 1.使用 pickle 存储 Python 对象 2.使用 json 存储 Python 对象 ---- 1.使用 pickle 存储 Python 对象 在 Python 中,
小嗷犬
2022/11/15
3.3K0
Git连接远程仓库显示找不到存储库
今天在公司上传部分代码到GitHub远程库,结果无法push,Git报错信息显示找不到存储库 $ git push origin master ERROR: Repository not found. fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. 报错信息显示无法从远程库读取 需要保证我有正确的访问权限
框架师
2021/03/05
3.9K0
用于数据科学和机器学习的GitHub存储库和Reddit主题
GitHub和Reddit都是比较有趣的平台,在这里,我不仅学习了数据科学的一些最佳应用,而且还了解数据科学家们是如何编程的。
IT派
2018/08/10
8740
用于数据科学和机器学习的GitHub存储库和Reddit主题
GitHub使用AI来推荐项目存储库中的开放问题
GitHub上,大型开源项目需要解决的问题多得吓人。为了更容易地发现最紧迫的问题,GitHub最近引入了“好问题优先”的功能,将贡献者与可能符合他们兴趣的问题进行匹配。最初的版本于2019年5月发布,可以根据项目维护者对问题应用的标签提出建议。上个月发布了更新版本,该版本包含一个人工智能算法。GitHub指出,这是GitHub.com上推出的第一款支持深度学习的产品。
AiTechYun
2020/02/21
1.7K0
Yar:用于侦察Github上存储库用户和组织的工具
Yar通过正则表达式,熵(entropy)或两者进行搜索,你可以根据实际情况自行选择。你可以把yar想象成是truffleHog的升级版,它能做truffleHog可以做的所有事情,甚至比它做的更多更好!
FB客服
2019/10/10
1K0
本地存储
随着互联网的快速发展,基于网页的应用越来越普遍,同时也变的越来越复杂,为了满足各种各样的需求,会经常性在本地存储大量的数据,HTML5规范提出了相关解决方案。
梨涡浅笑
2022/05/08
1.3K0
本地存储
存储数据:sessionStorage.setItem(key,value) 获取数据:sessionStorage.getItem(key) 删除数据:sessionStorage.remove(key) 删除所有数据:sessionStorage.clear()
切图仔
2022/09/08
1.1K0
本地存储——sessionStorage和localStorage
随着互联网的快速发展,基于网页的应用越来越普遍,同时也变得越来越复杂,为了满足各种各样的需求,会经常性在本地存储大量的数据,HTML5规范提出了相关解决方案。
岳泽以
2022/10/26
8710
本地存储
为了满足各种各样的需求,会经常性在本地存储大量的数据,HTML5规范提出了相关解决方案。
星辰_大海
2020/10/09
1.4K0
localStorage和sessionStorage本地存储
使用HTML5中的Web Storage API, 可以在客户端存储更多的数据,,可以实现数据在多个页面中共享甚至是同步,对于复杂的数据,可以使用 Web SQL Database API 来实现。
达达前端
2021/02/04
2.1K0
FlowFile存储库原理
系统正在积极处理的FlowFiles保存在JVM内存中的Hash Map中。这使它们的处理效率非常高,但是由于多种原因,例如断电,内核崩溃,系统升级和维护周期,因此需要一种辅助机制来在整个进程重新启动中提供数据的持久性。FlowFile存储库是系统中当前存在的每个FlowFiles的元数据的Write-Ahead Log(或数据记录)。该FlowFile元数据包括与FlowFile相关联的所有attributes,指向FlowFile实际内容的指针(该内容存在于内容存储库中)以及FlowFile的状态,例如FlowFile所属的Connection/Queue。预写日志为NiFi提供了处理重启和意外系统故障所需的弹性。
@阿诚
2021/03/08
1.3K0
点击加载更多

相似问题

我可以加入远程和本地存储库吗

114

Git软件(例如Gitbox、Github、SourceTree)可以使用远程存储库而不是本地存储库吗?

45

我可以使用Visual克隆远程github存储库吗?

10

maven可以同时使用本地和远程存储库吗?

20

创建本地git存储库,而不是使用github

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文