小编ejo*_*rns的帖子

CMake交叉编译:忽略工具链文件中的C标志

我使用cmake进行交叉编译.在我的工具链文件中有一行

SET(CMAKE_C_FLAGS "-std=gnu99")
Run Code Online (Sandbox Code Playgroud)

此变量未再次在CMakeLists.txt中设置.

当我运行cmake -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake ..此标志被忽略.

更详细:显示一行flags.cmakeC_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)

c flags cmake cross-compiling

17
推荐指数
2
解决办法
1万
查看次数

const变量作为非类型模板参数(VARIABLE不能出现在常量表达式中)

为什么这样做?

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无效

c++ templates const

8
推荐指数
1
解决办法
1971
查看次数

Android下使用Logger进行日志记录

我注意到以下内容在 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)

为什么这在安卓上会失败?

java logging android

5
推荐指数
2
解决办法
1万
查看次数

git推送到多个遥控器上的不同分支

我有一个本地存储库,我想推送到多个远程存储库(firstremote,secondremote).这可以通过编辑.git/config和创建remote具有多个urls 的新功能来完成.

但另外我想将我的本地分支推送到不同名称的远程分支.例如,push(mybranch)到一个名为firstbranchon firstremotesecondbranchon 的分支secondremote.

为此,我不知道如何指定不同的上游分支名称.

注意:我想用单个自动进行推送git push.

git branch push

5
推荐指数
1
解决办法
821
查看次数

标签 统计

android ×1

branch ×1

c ×1

c++ ×1

cmake ×1

const ×1

cross-compiling ×1

flags ×1

git ×1

java ×1

logging ×1

push ×1

templates ×1