我是Android Studio的新手,我想制作一个使用我的C ++代码的应用。我使用Cmake导入.cpp文件,并在构建项目时遇到以下错误:
Build command failed.
Error while executing process F:\Android with arguments {SKD_Components\cmake\3.10.2.4988404\bin\ninja.exe -C A:\...\app\.cxx\cmake\debug\armeabi-v7a native-lib}
ninja: Entering directory `A:\...\app\.cxx\cmake\debug\armeabi-v7a'
[1/2] Building CXX object CMakeFiles/native-lib.dir/A_/Visual_Studio_Projects/.../filename.cpp.o
FAILED: CMakeFiles/native-lib.dir/A_/Visual_Studio_Projects/.../filename.cpp.o
"F:\Android SKD_Components\ndk\20.0.5594570\toolchains\llvm\prebuilt\windows-x86_64\bin\clang++.exe" --target=armv7-none-linux-androideabi21 --gcc-toolchain="F:/Android SKD_Components/ndk/20.0.5594570/toolchains/llvm/prebuilt/windows-x86_64" --sysroot="F:/Android SKD_Components/ndk/20.0.5594570/toolchains/llvm/prebuilt/windows-x86_64/sysroot" -Dnative_lib_EXPORTS -IA:/Visual_Studio_Projects/PasswordGenerator/PasswordGenerator -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -fno-addrsig -march=armv7-a -mthumb -Wa,--noexecstack -Wformat -Werror=format-security -O0 -fno-limit-debug-info -fPIC -MD -MT CMakeFiles/native-lib.dir/A_/Visual_Studio_Projects/.../filename.cpp.o -MF CMakeFiles\native-lib.dir\A_\Visual_Studio_Projects\...\filename.cpp.o.d -o CMakeFiles/native-lib.dir/A_/Visual_Studio_Projects/.../filename.cpp.o -c A:/Visual_Studio_Projects/PasswordGenerator/PasswordGenerator.cpp
fatal error: UTF-16 (LE) byte order mark detected in 'A:/Visual_Studio_Projects/.../filename.cpp', but encoding is not supported
1 error generated.
ninja: build stopped: subcommand failed.
与编码有关,但是我真的无法弄清楚是什么。有人有解决方案吗?
错误告诉您,您的filename.cpp
源文件以UTF-16LE BOM(字节FF FE
)开头,表示文件的内容已用UTF-16编码。您使用的编译器不支持编译该编码形式的源文件。您需要将.cpp
文件的编码更改为另一种编码,最好是7/8位编码,例如UTF-8或更可能是ASCII。无论使用哪个编辑器来创建该文件,请在保存文件时检查其是否具有指定其他编码的选项。否则,您将必须使用第三方工具重新编码现有文件,例如iconv。