Вот как вручную скомпилировать код C под Linux без дополнительных инструментов сборки :
gcc -s -O2 -o prog -I. -Iincludedir1 -Iincludedir2 -Llibdir1 -Llibdir2 code1.c code2.c -luse1 -luse2
Однако, если ваш проект превышает пару файлов, вы можете использовать вместо этого инструмент сборки (например, CMake, см. Ответ OregonGhost), чтобы автоматизировать компиляцию многих файлов и сделать ее инкрементальный. Если вы используете инструмент сборки, он будет запускать gcc изнутри, с аналогичными аргументами выше. Полезно понимать приведенные выше аргументы, поэтому вы можете устранить неполадки в случае сбоя автоматической сборки.
Это скомпилирует code1.c и code2.c в исполняемую двоичную прогу, загружая файлы .h из., Includesir1 и includesir2, загружая библиотеки (например, libuse1.so * и libuse2.so *) из каталогов libdir1 и libdir2, используя библиотеки use1 (соответствуют имени файла libuse1.so *) и use2.
Если вы получили неопределенные символьные ошибки в ваших .c файлах, вам нужно указать больше -I
флагов. Если вы получили неопределенные символьные ошибки в файле .o, вы должны указать больше -l
флагов. Если вы получаете cannot find -l...
ошибки, вы должны указать больше -L
flags.