小编Ltf*_*4an的帖子

如何为 Microsoft cmdline 编译器 cl 自定义 .exe 文件名?

我从谷歌搜索中找到的唯一两个选项是 /OUT 和 /Fe,但都不适合我:

使用 /Fe 显示没有错误,但在当前目录中也找不到输出文件:

C:\hands_on\C>cl /Fe:test.exe main.c
Microsoft (R) C/C++ Optimizing Compiler Version 15.00.30729.01 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

main.c
Microsoft (R) Incremental Linker Version 9.00.30729.01
Copyright (C) Microsoft Corporation.  All rights reserved.

/out::test.exe
main.obj

C:\hands_on\C>ls
main.c  main.obj
Run Code Online (Sandbox Code Playgroud)

使用 /OUT 会出现错误:

C:\hands_on\C>cl /OUT:test.exe main.c
Microsoft (R) C/C++ Optimizing Compiler Version 15.00.30729.01 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

cl : Command line warning D9025 : overriding '/Ot' with '/Os'
cl : …
Run Code Online (Sandbox Code Playgroud)

filenames compiler-errors rename visual-studio output

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

cmake中的"c"代表什么?

我无法在谷歌上找到明确的答案.我认为这意味着跨平台.

还有另一个网站更适合这类问题吗?

cmake

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

为什么文件句柄不需要Perl中的sigil?

在Perl中,filehandle是一种数据类型,我希望这种类型的变量有一些sigil前缀.但是,以下代码(第二次打开)表明情况并非如此

open my $fileHandle, '>', "out.txt";
open FH, '>', "out2.txt";
Run Code Online (Sandbox Code Playgroud)

我发现第二种形式令人困惑/不一致.允许第二种形式的原因是什么?

variables perl filehandle

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

为什么在没有块的情况下调用eval会终止这个Perl程序?

以下程序在第二次调用eval时停止.这是预期的吗?我读了perldoc -f eval,并且惊讶于没有显示打印"2:..."的输出.

eval {die("The curly braces seem to rescue me! Life moves on")};
print "1: $@\n";
eval die("Program actually terminates here! Subsequent prints are not shown");
print "2: $@\n";
Run Code Online (Sandbox Code Playgroud)

perl eval

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

为什么q/\\ a /等于q /\a /?

以下示例打印"SAME":

if (q/\\a/ eq q/\a/) {
    print "SAME\n";
}
else {
    print "DIFFERENT\n";
}
Run Code Online (Sandbox Code Playgroud)

我理解这与文档一致.但我认为这种行为是不可取的.是否需要在单引号字符串中逃避反弹lilteral?如果我想要2个反冲,我需要指定4; 这似乎不方便.

Perl不应该检测反斜杠是否作为转义字符?例如,当反斜杠不在分隔符之前时,应将其视为文字; 如果是这种情况,我不需要3个反斜杠表示两个,例如,

q<a\\b>
Run Code Online (Sandbox Code Playgroud)

代替

q<a\\\b>.
Run Code Online (Sandbox Code Playgroud)

perl backslash single-quotes

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

在Perl中使用裸字有什么缺陷?

我理解裸字可以用作引用运算符(q //,qq //),哈希键等的字符串.我个人对此并不太兴奋,因为我无法克服心理上的期望应引用字符串,如C,C++中所示.但是,如果我采用引用字符串和裸字的混合使用,我想确保我不会意外地在脚中射击自己,在运行时裸字不能正常运行.

请排除"use strict"在编译时将其作为错误捕获的用例.我总是启用'严格'模式,所以我不关心这些情况.

以下是基于所提供的答案和评论的代码说明:

#!/usr/bin/perl

use strict;

use constant SIZE => "const_size";

sub size {
    return "getsize";
}

my $href = {
    size => 1,
    getsize => 2,
    const_size => "CONST_SIZE",
    SIZE => "LARGE",
};

print "constant SIZE:", SIZE, "\n";
print "1. \$href->{size}:", $href->{size}, "\n";
print "1a. \$href->{size()}:", $href->{size()}, "\n";
print "2. \$href->{getsize}:", $href->{getsize}, "\n";
print "3. \$href->{SIZE}:", $href->{SIZE}, "\n";
print "3a. \$href->{(SIZE)}:", $href->{(SIZE)}, "\n";
Run Code Online (Sandbox Code Playgroud)

输出:

$ ./bare_word.pl
constant SIZE:const_size
1. $href->{size}:1
1a. $href->{size()}:2
2. $href->{getsize}:2
3. $href->{SIZE}:LARGE …
Run Code Online (Sandbox Code Playgroud)

string quotes perl bareword

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

在这种情况下,在Perl中大括号的作用是什么?

以下print语句在访问数组引用的第一个元素时有效

my $aref = [6, 7, 8];
print $aref->[0];
print $$aref[0];
print ${$aref}[0];
Run Code Online (Sandbox Code Playgroud)

在第3次印刷中允许/使用花括号的原因是什么?它是按设计还是偶然工作?

perl curly-braces

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

Perl中的文件句柄的内置名称是什么?

perl -f ref列出的名称似乎都不是文件句柄.以下代码返回GLOB,因此似乎filehandle内部映射到或作为typeglob进行管理.那是对的吗?

open FH, '>', "out.txt";
my $ref = \*FH;
print "ref \$ref:", ref $ref, "\n";
Run Code Online (Sandbox Code Playgroud)

文件句柄是否有自己的类型名称?

perl filehandle

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