小编cmo*_*rse的帖子

如何进行CMake重新配置取决于自定义文件?

我在CMake下有一个项目,其中一些文件是从XML文件生成的python生成器.我无法在CMakeLists.txt中指定此生成器生成的所有文件,因此我使用文件globbing.

问题是当我更新我的XML文件或生成器源(它们在同一个存储库中)时,我希望重新配置我的构建系统,以便在重建代码时考虑更改的文件(例如通过make).

是否有可能使CMake处理一些文件,比如它处理CMakeLists.txt文件并使它在更改这些文件时重新生成构建系统?

code-generation cmake

8
推荐指数
2
解决办法
2545
查看次数

将非null终止的char*转换为int

我正在研究一些读入数据文件的代码.该文件经常包含以ASCII编码的各种长度的数值,我需要将其转换为整数.问题是它们不是以空值终止的,这当然会导致atoi出现问题.我一直在使用的解决方案是手动将null添加到字符序列,然后转换它.

这是我一直在使用的代码; 它工作正常,但它似乎非常kludgy.

char *append_null(const char *chars, const int size)
{
    char *tmp = new char[size + 2];

    memcpy(tmp, chars, size);
    tmp[size + 1] = '\0';

    return tmp;
}

int atoi2(const char *chars, const int size)
{
    char *tmp = append_null(chars, size);

    int result = atoi(tmp);

    delete[] tmp;   

    return result;
}

int main()
{
    char *test = new char[20];
    test[0] = '1';
    test[1] = '2';
    test[2] = '3';
    test[3] = '4';

    cout << atoi2(test, 4) << endl;
}
Run Code Online (Sandbox Code Playgroud)

我想知道是否有更好的方法来解决这个问题.

c++

6
推荐指数
3
解决办法
4350
查看次数

合并拉取请求后git标记会发生什么

如果您有这样的git提交树,会发生什么:

A-B-C-D          D <-- v0.9 (tag)
Run Code Online (Sandbox Code Playgroud)

并且您接受一个pull请求,该请求的更改早于之前标记的提交; 标签现在是否包含合并拉取请求的提交?

A-F-B-G-C-D      D <-- ? v0.9 (tag)
Run Code Online (Sandbox Code Playgroud)

git github-api

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

标签 统计

c++ ×1

cmake ×1

code-generation ×1

git ×1

github-api ×1