Компилирование многофайловой программы с флагами (Как?)

Модератор: Модераторы разделов

Ответить
Аватара пользователя
Assuri
Сообщения: 678
Статус: #include <brain.h>
ОС: Fedora 12
Контактная информация:

Компилирование многофайловой программы с флагами

Сообщение Assuri »

Мне надо скомпилировать программу, которая состоит из 6 файлов. В 1 из них необходим при компиляции флаг -lsqlite3. Как мне это сделать?

Пытался каждый "объектный" файл скомпилировать методом: g++ xx.cpp -c [-lsqlite3], но -lsqlite3 с -c выдает ошибку:

Код: Выделить всё

$ g++ classpass.cpp -c -lsqlite3
g++: -lsqlite3: linker input file unused because linking not done
Спасибо сказали:
andy128k
Сообщения: 28
ОС: GNU/Linux

Re: Компилирование многофайловой программы с флагами

Сообщение andy128k »

-DooM- писал(а):
27.07.2007 20:07
Мне надо скомпилировать программу, которая состоит из 6 файлов. В 1 из них необходим при компиляции флаг -lsqlite3. Как мне это сделать?

Пытался каждый "объектный" файл скомпилировать методом: g++ xx.cpp -c [-lsqlite3], но -lsqlite3 с -c выдает ошибку:

Код: Выделить всё

$ g++ classpass.cpp -c -lsqlite3
g++: -lsqlite3: linker input file unused because linking not done


Флаг -lsqlite3 -- это указание линкеру. а не компилятору.
Спасибо сказали:
ttnl
Сообщения: 18
ОС: Debian Etch

Re: Компилирование многофайловой программы с флагами

Сообщение ttnl »

andy128k писал(а):
27.07.2007 22:05
-DooM- писал(а):
27.07.2007 20:07
Мне надо скомпилировать программу, которая состоит из 6 файлов. В 1 из них необходим при компиляции флаг -lsqlite3. Как мне это сделать?

Пытался каждый "объектный" файл скомпилировать методом: g++ xx.cpp -c [-lsqlite3], но -lsqlite3 с -c выдает ошибку:

Код: Выделить всё

$ g++ classpass.cpp -c -lsqlite3
g++: -lsqlite3: linker input file unused because linking not done


Флаг -lsqlite3 -- это указание линкеру. а не компилятору.


Поэтому добавляй его, когда будешь линковать объектники.
И в каком конкретно он необходим неважно.
Спасибо сказали:
Аватара пользователя
Assuri
Сообщения: 678
Статус: #include <brain.h>
ОС: Fedora 12
Контактная информация:

Re: Компилирование многофайловой программы с флагами

Сообщение Assuri »

Я все файлы компилирую с этим флагом, но ошибка таже самая:

Код: Выделить всё

$ g++ main.cpp classpass.cpp classnew.cpp classdiary.cpp -c -lsqlite3
g++: -lsqlite3: linker input file unused because linking not don

Не понимаю....
Спасибо сказали:
Аватара пользователя
Uncle_Theodore
Сообщения: 3339
ОС: Slackware 12.2, ArchLinux 64

Re: Компилирование многофайловой программы с флагами

Сообщение Uncle_Theodore »

-DooM- писал(а):
28.07.2007 07:28
Я все файлы компилирую с этим флагом, но ошибка таже самая:

Код: Выделить всё

$ g++ main.cpp classpass.cpp classnew.cpp classdiary.cpp -c -lsqlite3
g++: -lsqlite3: linker input file unused because linking not don

Не понимаю....

Код: Выделить всё

g++ -c main.cpp classpass.cpp classnew.cpp classdiary.cpp
g++ main.o classpath.o classnew.o classdiary.o -lsqlite3 -o myprogram


Вообще-то, для этих целей и служит Makefile.
Спасибо сказали:
Аватара пользователя
Assuri
Сообщения: 678
Статус: #include <brain.h>
ОС: Fedora 12
Контактная информация:

Re: Компилирование многофайловой программы с флагами

Сообщение Assuri »

Uncle_Theodore писал(а):
28.07.2007 08:08
-DooM- писал(а):
28.07.2007 07:28
Я все файлы компилирую с этим флагом, но ошибка таже самая:

Код: Выделить всё

$ g++ main.cpp classpass.cpp classnew.cpp classdiary.cpp -c -lsqlite3
g++: -lsqlite3: linker input file unused because linking not don

Не понимаю....

Код: Выделить всё

g++ -c main.cpp classpass.cpp classnew.cpp classdiary.cpp
g++ main.o classpath.o classnew.o classdiary.o -lsqlite3 -o myprogram


Вообще-то, для этих целей и служит Makefile.

Все, огромное спасибо - все получилось.
Спасибо сказали:
Ответить