小编Ped*_*rez的帖子

GNU Make 构建过时且比某个时间戳更新的文件

我正在使用 GNU Make 3.81 来构建给定的 C 项目。GNU 的正常行为是检查目标是否存在并且任何先决条件比目标新,则执行目标命令。

如果先决条件比目标新且比给定时间戳新,是否可以重建目标?例如,仅当文件更新于 2011 年 10 月 2 日时,它才会构建。

c timestamp gnu makefile build

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

C中函数调用的默认参数

假设在一个文件中,我在同一项目的两个文件中有一些代码

file1.c
int func1(int a, int b, int c, bool d)
{
        /* function body */
}

file2.c
extern func1(int a, int b, int c);

/* function call */
func1(runtime1, runtime2, runtime3);
Run Code Online (Sandbox Code Playgroud)

bool d从 file2.c 调用时,值是什么?我知道这是非常糟糕的做法,但我正在维护旧代码并且有人这样做了,我只是想知道默认参数或者它是否依赖于实现。另请注意,bool此示例中是软件的 typedef,因为此特定项目不支持 C99。谢谢。!

c parameters default function undefined-behavior

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

如何将调用环境正确导出到Perl的子shell中?

我正在尝试使用Perl脚本在我们拥有的工具(wpj)中添加某些目录.直接命令看起来像

 $ wpj add path/to/desired/library makefile.wpj

我想做一个脚本来自动执行此操作,因为必须完成很多这样的操作.但是,设置一组非常特殊的环境变量来制作'wpj'.如果我用Perl的反引号调用wpj,则调用失败.你可以看到下面的代码

$command = "wpj add library path\\to\\file.wpj \\path\\to\\add";
print $command."\n";
$result = `$command`;
print "->".$result."\n";
Run Code Online (Sandbox Code Playgroud)

为此我得到了

wpj: not found
Run Code Online (Sandbox Code Playgroud)

但是,来自shell的相同调用成功.有些东西没有正确导出,请你给我一些关于如何将调用环境导出到backquotes创建的子shell中的建议?

environment perl path

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

在SVN中撤消不需要的合并

我们有一个运行SVN的存储库.在某些时刻,为了添加一个功能(让我们称之为'分支'),我们从主干线创建了一个开发分支(我们称之为'trunk').

我们一直在做我们的工作并且已经进入分支机构,偶尔,我们将在主干中进行的更改合并到分支机构中,以使其与主干保持最新状态.

在某些时候,来自主干的修订版75051到77691被合并到分支中,并且提交继续在分支上进行,在分支中提交新代码.

但是现在我们希望分支与主干最新只达到修订版77089,也就是说,我们想要撤消由于我们合并而导致分支中的更改,但只是由于rev77089-77691而导致的更改,而不会影响在分公司完成的所有工作.有什么建议可以恢复或撤消因主干中的rev77089-77691而导致的分支变化?非常感谢你.

svn tortoisesvn merge svn-merge

4
推荐指数
2
解决办法
8930
查看次数