小编Kur*_*cht的帖子

autotools可以创建多平台makefile

我有一个插件项目,我已经开发了几年,插件与[主应用程序版本,第三方库版本,32位与64位]的多种组合一起工作.是否有一种(干净的)方法来使用autotools来创建构建插件的所有版本的单个makefile.

从浏览autotools文档我可以看出,与我想要的最接近的是拥有项目的N个独立副本,每个副本都有自己的makefile.这对于测试和开发来说似乎有点不理想,因为(a)我需要在所有不同的副本中不断传播代码更​​改,并且(b)在复制项目时有很多浪费的空间.有没有更好的办法?

编辑:

我已经推出了自己的解决方案一段时间,我有一个花哨的makefile和一些perl脚本来搜索各种第三方库版本等.因此,我对其他非autotools解决方案持开放态度.对于其他构建工具,我希望它们对于最终用户来说非常容易安装.这些工具还需要足够智能,以便在没有大量麻烦的情况下搜索各种第三方库和标题.我主要是在寻找一个Linux解决方案,但也适用于Windows和/或Mac的解决方案.

64-bit 32-bit makefile multiplatform autotools

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

为什么malloc会覆盖RSP和RSP + 8?

您可以在此处阅读有关64位调用约定的信息.x64函数应该自己清理,但是当我从.asm调用malloc时,它会覆盖RSP和RSP + 8的值.这似乎非常错误.有什么建议?

public TestMalloc

extern malloc : near

.CODE

align 8
TestMalloc proc
    mov rcx, 100h
    000000018000BDB8 48 C7 C1 00 01 00 00   mov         rcx,100h 

    call malloc
    000000018000BDBF E8 CC AC 06 00         call        malloc (180076A90h) 

    ret
    000000018000BDC4 C3                     ret              
    000000018000BDC5 66 66 90               xchg        ax,ax 
TestMalloc endp

END
Run Code Online (Sandbox Code Playgroud)

windows malloc 64-bit

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

如何使我的正则表达式匹配第一个模式而不是最后一个?

我可能做错了.我有一个充满数据的文本文件,我想匹配并替换文件中"item"和"catalog number"的模式.但是文件中每个元素的顺序非常重要,所以我想从文件顶部开始匹配/替换然后再向下工作.

下面的代码片段实际上有效,但是当我执行它时,它会替换"SeaMonkey"和"SMKY-1978"模式的第三个实例,然后它将替换该模式的第二个实例.我想要它做的是替换模式的第一个实例,然后替换第二个实例.

所以我想输出说"找到Kurt的 SMKY-1978 SeaMonkeys"然后"找到Shane的 SMKY-1978 SeaMonkeys"然后离开Mick的SMKY-1978 SeaMonkeys,因为我只想找到并替换前2个实例图案.现在它说"找到Shane的 SMKY-1978 SeaMonkeys"和"找到Mick的 SMKY-1978 SeaMonkeys"因为它在每次执行for循环时匹配最后一个模式.

所以,我错过了一个微妙的鲜为人知的正则表达式角色,或者我只是在做我想做的完全彻底的错误?

这是工作代码:

# my regexp matches from the bottom to the top but I'd like it to replace from the top down
local $/=undef;
my $DataToParse = <DATA>;
my $item = "SeaMonkeys";
my $catNum = "SMKY-1978";
my $maxInstancesToReplace = 2;
parseData();
exit();

sub parseData {
    for (my $counter = 0; $counter < $maxInstancesToReplace; $counter++) {
        # Stick in a temporary text placeholder that …
Run Code Online (Sandbox Code Playgroud)

regex perl

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

MD5代码覆盖率

我目前正在实现基于MD5哈希算法的RSA数据安全代码,在UpdateData方法中有一节内容如下:

mCount[0] += (length << 3);

if (mCount[0] < (length << 3))
{
    mCount[1]++;
}
Run Code Online (Sandbox Code Playgroud)

我现在正在尝试理解if语句如何评估为true(mCount [0]值初始化为0).任何帮助将不胜感激.

谢谢

c++ md5 code-coverage

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