1
我想使用CMake編譯我的Android應用程序的本地部分。Android CMake工具鏈錯誤?
在我的CMakeLists.txt文件,我有這樣的聲明:
append(CMAKE_CXX_FLAGS "-std=c++11")
append
是我自己的功能,這樣的定義:
function(append VAR)
set(${VAR} ${${VAR}} ${ARGN} PARENT_SCOPE)
endfunction()
當我編譯爲其他平臺的應用程序能正常工作,但是當我將android.toolchain.cmake
添加到組合中時,此行會生成:
... -fno-exceptions -fno-rtti ;-std=c++11 ...
這是一個;
是由於某種原因添加在國旗之前。這將bash命令(對編譯器的調用)分成兩部分,第一部分不完整,第二部分不合理。
如何告訴Android使用C++ 11標準?
我從來沒有在Android上進行過開發,但是您可能希望查看['CXX_STANDARD'](https://cmake.org/cmake/help/latest/prop_tgt/CXX_STANDARD.html)等屬性,而不是設置直接標誌。 – Angew
順便說一下,append()是什麼,它從哪裏來,它是做什麼的?這不是一個內置的CMake命令。 – Angew
@Angew'append()'是我們自己的函數:'''函數(追加VAR) set($ {VAR} $ {$ {VAR}} $ {ARGN} PARENT_SCOPE) endfunction()''' – Ibolit