在Linux中使用一个命令编译和运行C ++代码

时间:2013-11-15 15:46:01

标签: c++ linux terminal

我的问题很简单:有没有办法在一行中从Linux终端编译和运行c ++代码?

6 个答案:

答案 0 :(得分:10)

g++ myfile.cpp -o myfile && ./myfile

答案 1 :(得分:5)

是。假设您的c ++程序编码在一个名为foo.cpp的文件中:

g++ foo.cpp -o foo && ./foo

注意:&&表示:仅当左侧的命令成功

时才在右侧执行命令

答案 2 :(得分:5)

试试这个黑客:

将此行贴在cpp文件的顶部:

//&>/dev/null;x="${0%.*}";[ ! "$x" -ot "$0" ]||(rm -f "$x";g++ -o "$x" "$0")&&exec "$x" "$@"

然后在cpp文件上添加执行权限,即(chmod +x foo.cpp),然后:

./foo.cpp

答案 3 :(得分:2)

这更像是一个shell脚本问题而不是C ++问题。在大多数shell中有很多链接命令的方法。假设您正在使用bash(请尝试echo $SHELL确认),请查看好bash tutorial

答案 4 :(得分:1)

通过“一个命令”,我假设OP意味着从命令行调用一个二进制文件。

一行:是的;见其他答案。

在一个命令中:确定 - 您可以利用一些隐式规则,并通过bash here字符串推送您自己的运行规则:

$ ls hello* *ake*
ls: cannot access *ake*: No such file or directory
hello.c
$ cat hello.c
#include <stdio.h>
int main (int argc, char **argv) {
    printf("%s %s\n", "hello", "world");
    return (0);
}
$ make hello.run -f - <<< 'hello.run: hello; ./$<'
cc     hello.c   -o hello
./hello
hello world
$ 

答案 5 :(得分:-2)

一行:是的;见其他答案。

在一个命令中:否。