== Исходные данные == Представим, что наш проект состоит из 3 файлов - main.c, f1.c, f2.c // f1.c int f1() { return 1; } // f2.c int f2() { return 2; } // main.c #include <iostream> extern int f1(); extern int f2(); using namespace std; int main() { cout << f1() << endl; cout << f2() << endl; return 0; } Сборка проекта происходит в две стадии - компиляция и собственно сборка. Компилируются все части отдельно: $ g++ -c main.c f1.c f2.c $ g++ main.o f1.o f2.o -o app На выходе получаем готовое приложение app. Кстати, для тестовых целей мы могли бы поместить в приложении побольше отладочной информации. Это делается ключом -g. Отладочную информацию, в дальнейшем, можно из приложения полностью вычистить. $ g++ -g3 -c main.c f1.c f2.c $ g++ main.o f1.o f2.o -o app $ strip -s app == Сборка статической библиотеки == Статическая библиотека собирается в два шага - сначала собираются объектные файлы, а затем создаются индексы. $ ar rc libfs.a f1.o f2.o $ ranlib libfs.a $ g++ -c main.c $ g++ main.o -L. -lfs -o app
C++ Справочник v0.05 © 2007-2024 Igor Salnikov aka SunDoctor