我正在使用以下命令通过perl脚本编译一些C ++程序:
g++ -o out `find ./ -iname "*.h" -or -iname "*.cpp"`
无论程序是否成功编译,这似乎每次都会生成一个out
文件
每当脚本尝试运行这样的程序时,它都会获得权限错误(因为我以root
运行,所以很奇怪。)
这是否准确,如果是,我该如何预防呢?
感谢。
答案 0 :(得分:3)
标题问题的答案(“即使程序无法编译/加载,g ++是否仍会生成输出文件?”)不是:
% echo blah > test.cpp
% g++ -o out test.cpp
test.cpp:1: error: expected constructor, destructor, or type conversion at end of input
% ls *out*
/bin/ls: *out*: No such file or directory
%
答案 1 :(得分:1)
我解决了如下:
出于某种原因,尝试使用-o out
输出可执行文件似乎强制创建文件,即使在编译失败后(在我看来)。
答案 2 :(得分:0)
g++ -o out.tmp `find ./ -iname "*.h" -or -iname "*.cpp"` && mv out.tmp out