我正在使用带有cmake和Android NDK的Android Studio 2.2.2。我有一个库,其中包含我为项目编译的几个.s(汇编程序)文件。
直到cmake,当我使用Android.mk文件时,我在编译/链接时没有任何问题,而在cmake上遇到编译错误,如:
lib \ arm_android \ armfrag.s:1:2:错误:语句开头的意外令牌 @ ******************* ******************* ^ libs \ arm_android \ armfrag.s:2:2:错误:语句开头的意外标记 @ * * ^
顶部的armfrag文件包含注释:
@ ********************************************** ********************** @ * * @ *这个文件是............................................. ......................................
我认为由此我的cmake无法读取这个汇编文件,但评论不是唯一的问题,因为我删除了评论,但仍然会出错。
我的cmake看起来像这样:
float8
有没有人知道为什么cmake失败并使用旧的Android.mk文件?
干杯
*已添加*
详细说明我得到的错误相同,但附加说明:
cmake_minimum_required(VERSION 3.4.1)
set(CMAKE_VERBOSE_MAKEFILE on)
set(can_use_assembler TRUE)
enable_language(ASM)
add_definitions(-DANDROID -DNDEBUG -DOC_ARM_ASM)
add_library(omnitus STATIC
../../../../libs/lib/arm_android/armbits.s
../../../../libs/lib/arm_android/armfrag.s
../../../../libs/lib/arm_android/armidct.s
../../../../libs/lib/arm_android/armloop.s
../../../../libs/lib/arm/armopts-gnu.s
)
target_include_directories(omnitus PUBLIC
../../../../libs/include
)
target_include_directories(omnitus PUBLIC
../../../../libs/lib/arm
)
target_include_directories(omnitus PUBLIC
../../../../libs/include
)
*添加了修改过的cmake文件*
Android clang version 3.8.256229 (based on LLVM 3.8.256229)
Target: x86_64-unknown-linux
Thread model: posix
InstalledDir: C:\Android\sdk\ndk-bundle\toolchains\llvm\prebuilt\windows-x86_64\bin
clang.exe: warning: argument unused during compilation: '-D ANDROID'
clang.exe: warning: argument unused during compilation: '-D ARM'
clang.exe: warning: argument unused during compilation: '-D NDEBUG'
clang.exe: warning: argument unused during compilation: '-D OC_ARM_ASM'
clang.exe: warning: argument unused during compilation: '-MD'
clang.exe: warning: argument unused during compilation: '-MT CMakeFiles/omnitus.dir/lib/arm/armopts-gnu.s.o'
clang.exe: warning: argument unused during compilation: '-MF CMakeFiles\omnitus.dir\lib\arm\armopts-gnu.s.o.d'
答案 0 :(得分:0)
到目前为止,对于ARMv7和ARMv8体系结构,您必须以内联汇编样式在C源文件中编写汇编代码。
Android Studio刚刚为x86和x86-64体系结构添加了YASM汇编程序。