G ++ все еще генерирует выходной файл, даже если программе не удается скомпилировать / загрузить - PullRequest
0 голосов
/ 13 октября 2010

Я компилирую некоторые программы на C ++ через Perl-скрипт, используя:

g++ -o out `find ./ -iname "*.h" -or -iname "*.cpp"`

Кажется, что каждый раз создается файл out, независимо от того, успешно ли скомпилирована программа.
Всякий раз, когда скрипт пытается запускать подобные программы, он получает ошибки разрешения (странно, так как я запускаю как root).
Это точно, и если да, как я могу предотвратить это?

Спасибо.

Ответы [ 3 ]

3 голосов
/ 13 октября 2010

Ответ на вопрос вашего заголовка («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 голос
/ 13 октября 2010

Я решил это следующим образом:
По какой-то причине попытка поместить исполняемый файл вывода с помощью -o out, казалось, вынудила создать файл даже после сбоя компиляции (мне кажется).

0 голосов
/ 13 октября 2010
g++ -o out.tmp `find ./ -iname "*.h" -or -iname "*.cpp"` && mv out.tmp out
...