我正在将Android Studio 2.2.2与cmake和Android NDK结合使用。我有一个库,其中包含我为项目编译的几个.s(汇编器)文件。
直到cmake,当我使用Android.mk文件时,我对该文件进行了编译/链接,而在cmake上没有任何问题,例如:]lib \ arm_android \ armfrag.s:1:2:错误:语句开始时出现意外令牌@ ***************************************************** *******************^libs \ arm_android \ armfrag.s:2:2:错误:语句开始时出现意外令牌@ * *^
顶部包含的armfrag文件评论如下:@ *************************************************** *********************@ * *@ *此文件为............................................. ......................................]
我认为我的cmake无法读取此汇编文件,但是注释不是唯一的问题,因为我删除了注释,但仍然出现错误。
我的cmake看起来像这样: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.mk文件吗?
欢呼声
*已添加*
用冗长的代码我会得到同样的错误,但除此之外: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'
*添加了修改的cmake文件*cmake_minimum_required(VERSION 3.4.1)
set(CMAKE_VERBOSE_MAKEFILE on)
set(can_use_assembler TRUE)
enable_language(ASM)
add_definitions(-v -DANDROID -DNDEBUG -DOC_ARM_ASM)
if(CMAKE_SYSTEM_PROCESSOR STREQUAL armv7-a)
set(TEST_SOURCES ../../../../libs/lib/arm_android/armbits.s
../../../../libs/arm_android/armfrag.s
../../../../libs/arm_android/armidct.s
../../../../libs/arm_android/armloop.s
../../../../libs/lib/arm/armopts-gnu.s
)
endif()
add_library(omnitus STATIC ${TEST_SOURCES}
)
target_include_directories(omnitus PUBLIC
../../../../libs/include
)
target_include_directories(omnitus PUBLIC
../../../../libs/arm
)
target_include_directories(omnitus PUBLIC
../../../../libs/include
)
我正在将Android Studio 2.2.2与cmake和Android NDK结合使用。我有一个库,其中包含我为项目编译的几个.s(汇编器)文件。直到cmake,当我使用Android.mk文件时...