我的问题很简单:有没有办法在一行中从Linux终端编译和运行c ++代码?
答案 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意味着从命令行调用一个二进制文件。
一行:是的;见其他答案。
在一个命令中:确定 - 您可以利用一些make隐式规则,并通过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)
一行:是的;见其他答案。
在一个命令中:否。