2016-05-03 4 views
0

У меня есть некоторые c-файлы, которые я хочу скомпилировать отдельно и связать их вместе с помощью bat-файла. Я буду компилировать/связывать их с помощью gcc.Bat файл для компиляции неизвестного количества файлов C

Проблема в том, что новые файлы c могут быть добавлены, и я хочу, чтобы файл bat скомпилировал/связал все, не зная точного количества файлов (без изменения файла bat).

Что-то вроде:

for X=1:number_of_c_files 
    gcc -c sourceX.c 

, а затем соединить их вместе.

Все файлы называются compile_to_cX.c, где X - значение от 1 до количества c-файлов из каталога.

Заранее благодарен!

ответ

2

Это довольно тривиально.

for %%i in (*.c) do (
    gcc -c "%%i" 
) 

ETA

Я не помню, если вы можете указать * .o в НКУ, но я думаю, что вы можете, и в этом случае это было бы что-то вроде:

gcc *.o [options] 

Другим вариантом было бы накопление имен файлов .o в переменной окружения.

setlocal ENABLEDELAYEDEXPANSION 
set O_FILES= 
for %%i in (*.o) do (
    set O_FILES=!O_FILES! %%i 
) 

gcc %O_FILES% [other options] 

Действительно, вам, вероятно, следует использовать make-файл.

+0

Как насчет ссылки? Мне нужно сделать это одновременно с чем-то вроде gcc -Xlinker -no-as-needed compile_to_c1.o ... compile_to_c100.o -x none – user3629077

+0

Не работает то же самое, что и компиляция – user3629077

+0

Я ценю вашу помощь, но никто не работал для связывания , Я постараюсь сделать новую тему для этого вопроса. – user3629077

Смежные вопросы