小编Sog*_*tar的帖子

CMake:如何显示编译器的标准输出

这应该很简单,但我很难搞清楚.通常,在使用make构建项目时,只显示编译器的stderr.如何配置CMake以显示编译器的标准输出?我正在使用GCC,如果这很重要的话.

gcc cmake

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

如何将 boost::asio::awaitable 转换为 std::future?

我有一个返回boost::asio::awaitable. 将这个 awaitable 转换为的惯用方法是什么std::future

c++ boost-asio

20
推荐指数
1
解决办法
406
查看次数

const_iterator和const_iterator :: value_type的constness

为何选择STL

std::iterator_traits<const T*>::value_type
Run Code Online (Sandbox Code Playgroud)

与...的类型相同

std::iterator_traits<T*>::value_type
Run Code Online (Sandbox Code Playgroud)

为什么它的设计是这样的?首先不应该是const T而第二个是T吗?你应该如何采用底层const正确类型的迭代器?我知道你可以编写自己的模板类和专业化并从中获取

    std::iterator_traits<const T*>::pointer
Run Code Online (Sandbox Code Playgroud)

但不应该有一个成员typedef持有它吗?

c++ iterator const-iterator iterator-traits

14
推荐指数
2
解决办法
1613
查看次数

从Android.mk调用Shell脚本,标准输出和缺少分隔符错误

我有一个简单的Android.mk文件:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

$(shell ($(LOCAL_PATH)/echo_test.sh))

LOCAL_MODULE := libecho_test
LOCAL_MODULE_TAGS := optional
include $(BUILD_SHARED_LIBRARY)
Run Code Online (Sandbox Code Playgroud)

它有趣的是调用'echo_test.sh'bash脚本.在脚本的内容是的情况下

#!/bin/bash
echo 'echo is working' >&2
Run Code Online (Sandbox Code Playgroud)

要么

#!/bin/bash
echo 'echo is working' >/dev/null
Run Code Online (Sandbox Code Playgroud)

一切都好.

bash脚本出现问题

#!/bin/bash
echo 'echo is working'
Run Code Online (Sandbox Code Playgroud)

要么

#!/bin/bash
echo 'echo is working' >&1
Run Code Online (Sandbox Code Playgroud)

然后返回的错误是

Android.mk:4: *** missing separator.  Stop. 
Run Code Online (Sandbox Code Playgroud)

Android NDK 7以及在Android Ice Cream Sandwich 4.0.3的构建过程中包含此模块时都会发生这种情况.

我真的无法理解标准输出和Android构建系统的处理方式.有人有解释吗?

bash shell stdout android-ndk

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

GDB:捕获信号并继续调试

我试图在GDB中捕获浮点异常(SIGFPE),而不是将其传递给进程并继续调试.我给了gdb这个:

handle SIGFPE stop nopass
Run Code Online (Sandbox Code Playgroud)

当SIGFPE发生时,GDB停在正确的位置.问题是我不能也不知道如何继续调试.我试过给GDB

continue
Run Code Online (Sandbox Code Playgroud)

要么

signal 0
Run Code Online (Sandbox Code Playgroud)

但它仍然挂在违规线上,并拒绝继续.

收到信号后有没有办法继续调试?

我正在使用我自己编译的GDB 7.5.1,我也尝试过使用我的12.04 Ubuntu发行版附带的GDB 7.4.两者都有相同的行为.

gdb

6
推荐指数
1
解决办法
6810
查看次数

Gradle复制任务无提示失败

我有1个文件的复制任务

task myCopyTask(type: Copy) {
    copy {
        from "/path/to/my/file"
        into "path/to/out/dir"
    }
}
Run Code Online (Sandbox Code Playgroud)

怎么做,如果复制失败,任务失败?现在,如果文件不存在,则不会出错.


如果源目录不存在则失败Gradle Copy任务提供解决方案.这不起作用,因为如果一切都不在里面

copy { ... }
Run Code Online (Sandbox Code Playgroud)

任务根本不起作用.


我也试过了

task myCopyTask(type: Copy) {
    copy {
        from "/path/to/my/file"
        into "path/to/out/dir"
        inputs.sourceFiles.stopExecutionIfEmpty()
    }
}
Run Code Online (Sandbox Code Playgroud)

上面会失败,因为inputs.sourceFiles将为空.

gradle

4
推荐指数
1
解决办法
2322
查看次数