Looping no bash de Makefile

1

eu preciso escrever um Makefile que compila cada .cpp no diretório atual no arquivo .so (com flags -shared -fPIC) e copia o arquivo .so no diretório "../../dir/" sem ".so "extensão.

Por exemplo, se nome do arquivo for "div.cpp", preciso compilá-lo em "div" e copiá-lo para ../../dir/.

    
por davitp 08.08.2014 / 13:39

1 resposta

1

find é uma maneira bastante útil de comandar vários arquivos em lote, mas carrega apenas o nome completo do arquivo em torno de qual meio, quando usado no argumento -o , geraria file.cpp.so . Mas podemos limpar depois disso.

find -maxlevel 1 -iname '*.cpp' -exec g++ -shared -fPIC -o {}.so {} \;
rename 's/cpp\.so$/so/i' *.cpp.so
cp *.so ../../dir
    
por Oli 08.08.2014 / 14:05