2012-03-22 2 views
-5

У меня есть 10 файлов C. 10 ч файлы в одной папке. Мне нужны эти файлы, чтобы создать 1 исполняемый файл в той же папке, используя make-файл unix.создание файла makefile для немого

EDIT: soultion

создать файл с именем "Makefile" написать следующее убедитесь, что вы один TAB перед словом "GCC" это создаст a.out исполняемый

all: 
    gcc *.c 

если вам нужны флаги просто добавить их, например, чтобы сделать имя файла ЛПП:

all: 
    gcc *.c -o BOB 
+3

Почему вы не можете сами создать make-файл? –

+2

Что вы пробовали? В Интернете есть хорошие руководства по make-файлам. Погугли это! –

+0

искать образец файла makefile, адаптировать его для ваших нужд. –

ответ

2

Я не думаю, что вы хотите, что вы говорите, что хотите, но как насчет:

all: 
    gcc *.c 
+0

будет включать мои файлы H? и создать простой исполняемый файл? – Nahum

+2

.h файлы должны быть включены в ваши .c файлы с директивами '# include', а не в командной строке. Да, это скомпилирует все .c файлы в этой папке. Вставьте его в файл под названием 'Makefile' и запустите' make'. Ваш исполняемый файл будет называться 'a.out'. Вы можете получить другое имя, добавив '-o имя_файла' в команду' gcc'. – transistor1

+0

после переключения пробелов на вкладки, которые он выполняет, но портирование программы вызывает ошибку сегментации :( – Nahum

0

Помимо очевидно написания Mak efile самостоятельно, вы также можете использовать CMake, который является удобным генератором системы сборки.

Простой пример файла CMakeLists.txt:

cmake_minimum_required(VERSION 2.6) 
project(yourproject C) 
add_executable(yourexecutable file1.c file1.h file2.c file2.h ...) 

Вы можете сделать в терминале:

$ cmake . 
$ make 

и ваш исполняемый файл будет построен.

Будьте осторожны, однако, сгенерированный make-файл использует cmake и, следовательно, не может быть распространен сам по себе.

+0

, так что это не помогает :( – Nahum

+0

Файл CMakeLists.txt распространяется, однако, и ваш проект может быть создан любым, у кого есть CMake, установленный в их системе;) – SirDarius

1

«отсутствует разделитель» обычно вызывается язычком недостающего перед командной строки. Строки с $(CXX) должны быть отступом от вкладки - не 8 пробелов, а не любое количество пробелов, а вкладка.

Кроме того, я не думаю, что пустые строки между правилом и командами разрешены.