2014-02-22 40 views
1

我想为我的程序使用C++ 11标准和O3优化。 通常我只使用编译标志:-std=c++11-O3,但我必须将源文件发送到自动编译它的远程服务器。所以基本上我唯一想到的是使用一些整洁的宏。我非常肯定可以定义优化的方式,因为我在某个地方看到了它,但我仍然记不起它的样子。通过宏定义编译标志(C++ 11和优化)

+1

你处理的问题不是技术问题,而是社会问题。如果远程服务器管理员不想让您指定命令行选项,则不应该尝试指定命令行选项。如果远程服务器管理员确实希望让您指定命令行选项,那么您将能够找出一些界面来指定它们,这对您而言都很合适。 – hvd

+0

我已经跟服务器管理员谈过了,他说他不能改变命令行选项,但如果我可以通过宏执行它,那么它就没关系。 – user3340553

+1

@ user3340553在这一点上,我认为如果您可以向我们提供有关该服务的更多信息,可能会有所帮助。也许我们可以建议一个替代品,因为这个出现“破碎”。再次,不知道更多,我们不能说。也许这是为了比赛,规则(任意)限制编译器设置? –

回答

3

你要求的是超出C++规范。

因此,如果它支持所有 - 任何地方 - 它将通过编译指示来支持。我不知道有什么编译指示“编译为C++ 11”,所以我会说这是一个失败的原因。还有千万显得有些优化编译指示在那里:

http://gcc.gnu.org/onlinedocs/gcc/Function-Specific-Option-Pragmas.html

但是,一定要记住使用#pragma为完全的规范之外。如果编译器命中一个,它可以做任何它喜欢的事情,并且仍然是标准的。这包括推出视频游戏(and this has been done)

所以长话短说:如果这是你的要求,那么你需要告诉任何人,这是提供您需要一定的编译器设置你的计划您的编辑服务。

+0

该问题明确指定了g ++。 –

+0

而更重要的是(正如我前几天在工作中发现的那样),-Wpragmas + -Werror使得它错误。 –

+0

@KonradRudolph在标签中(并不总是超显式的),你的观点是...?如果您知道gcc中的“编译为C++ 11”编译指示,我会授予我从答案中学到的新东西。 – HostileFork