我使用cmake进行交叉编译.在我的工具链文件中有一行
SET(CMAKE_C_FLAGS "-std=gnu99")
Run Code Online (Sandbox Code Playgroud)
此变量未再次在CMakeLists.txt中设置.
当我运行cmake -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake ..此标志被忽略.
更详细:显示一行flags.cmake空C_FLAGS =行.但在CMakeOutput.log我能找到一条线Build flags: -std=gnu99.
我发现第二次运行cmake ..(指定或不指定工具链文件)修复了这个问题.
但是为什么我第一次运行cmake时没有设置?
编辑:添加了MNWE
的CMakeLists.txt:
cmake_minimum_required(VERSION 2.6)
project(myproject)
SET(files src/main.c)
add_executable(myexec ${files})
Run Code Online (Sandbox Code Playgroud)
avr.cmake:
SET(CMAKE_SYSTEM_NAME Generic)
SET(CMAKE_C_COMPILER avr-gcc)
SET(CMAKE_C_FLAGS "-std=gnu99")
Run Code Online (Sandbox Code Playgroud) 为什么这样做?
char __nontype[] = "foo";
typedef TemplateClass<T, __nontype> MyClass;
Run Code Online (Sandbox Code Playgroud)
但是这个(带有常数变量)不是吗?
const char __nontype[] = "foo";
typedef TemplateClass<T, __nontype> MyClass;
Run Code Online (Sandbox Code Playgroud)
编译器错误:
错误:'__ nontype'不能出现在常量表达式中
错误:模板参数2无效
我注意到以下内容在 PC 上有效,但在 Android 模拟器中无效。
Logger logger = Logger.getLogger("foo");
logger.log(Level.INFO, "Number is: {0}", new Object[]{new Integer(42)});
Run Code Online (Sandbox Code Playgroud)
它只是打印
Number is: {0}
Run Code Online (Sandbox Code Playgroud)
为什么这在安卓上会失败?
我有一个本地存储库,我想推送到多个远程存储库(firstremote,secondremote).这可以通过编辑.git/config和创建remote具有多个urls 的新功能来完成.
但另外我想将我的本地分支推送到不同名称的远程分支.例如,push(mybranch)到一个名为firstbranchon firstremote和secondbranchon 的分支secondremote.
为此,我不知道如何指定不同的上游分支名称.
注意:我想用单个自动进行推送git push.