Форум программистов, компьютерный форум CyberForum.ru

Библиотека (.h + .cpp) в папку include компилятора - C++

Восстановить пароль Регистрация
 
Sky-WaLkeR
1 / 1 / 0
Регистрация: 15.06.2012
Сообщений: 59
24.05.2013, 17:06     Библиотека (.h + .cpp) в папку include компилятора #1
Здравствуйте!

Написал библиотеку с вынесенным в разные файлы интерфейсом и реализацией (lib.h и lib.cpp), всем функциям в .h приписал extern. Хочу, чтобы лежало это все не в папке с проектом, а в общей include-папке компилятора (gcc) - используется много где, неохота в каждый бросать. Переношу, подключаю h - ругается на Not defined (что и правильно - не видит файла .cpp). Подключаю .h и .cpp - все хорошо. Но подключать и h и cpp - некрасиво как-то...

Как решить данную проблему? Весь гугл перерыл, но не нашел решения (когда именно в include-папке лежит и h и cpp, а подключается только h).

Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.05.2013, 17:06     Библиотека (.h + .cpp) в папку include компилятора
Посмотрите здесь:

Как в DEV C++ добавить опцию компилятора *cpp? C++
C++ Непонятная ошибка компилятора Dev-Cpp
C++ создал "circle.h" файл. При компиляции Cpp файла выдаёт unable to open include file 'circle.h'
#include "my.cpp" C++
Подключение файла #include <name.cpp> C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
24.05.2013, 17:21     Библиотека (.h + .cpp) в папку include компилятора #2
Цитата Сообщение от Sky-WaLkeR Посмотреть сообщение
всем функциям в .h приписал extern.
Они и так extern по умолчанию.
Цитата Сообщение от Sky-WaLkeR Посмотреть сообщение
Хочу, чтобы лежало это все не в папке с проектом, а в общей include-папке компилятора (gcc)
Не стоит.
Указать gcc, где лежат файлы можно с помощью опции -I (-Ipath/to/your/files).
Sky-WaLkeR
1 / 1 / 0
Регистрация: 15.06.2012
Сообщений: 59
24.05.2013, 17:23  [ТС]     Библиотека (.h + .cpp) в папку include компилятора #3
Спасибо за быстрый ответ. Сейчас попробую и отпишусь...
BAADF00D
Заблокирован
24.05.2013, 17:24     Библиотека (.h + .cpp) в папку include компилятора #4
Цитата Сообщение от Sky-WaLkeR Посмотреть сообщение
используется много где, неохота в каждый бросать
не легче ли собрать win-dll or nix-so однажды и с ней линковаться?
Sky-WaLkeR
1 / 1 / 0
Регистрация: 15.06.2012
Сообщений: 59
24.05.2013, 17:27  [ТС]     Библиотека (.h + .cpp) в папку include компилятора #5
Цитата Сообщение от BAADF00D Посмотреть сообщение
win-dll or nix-so
Был бы не против, если не одно но: не Linux и не Windows, а AVR (avr-gcc 4.8.0). Микроконтроллер программирую.

Цитата Сообщение от gray_fox Посмотреть сообщение
-I (-Ipath/to/your/files).
А вот тут возникает другая засада, собственно ради ее решения я и перенес в два файла, раньше все в .h было. Дело в том, что у меня в проекте несколько .cpp включают эту библиотеку, и происходит Multiple definition ошибка. То есть данный метод ничем не отличается от расположения в include...
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
24.05.2013, 19:15     Библиотека (.h + .cpp) в папку include компилятора #6
Цитата Сообщение от Sky-WaLkeR Посмотреть сообщение
Дело в том, что у меня в проекте несколько .cpp включают эту библиотеку, и происходит Multiple definition ошибка.
Ну так в чём проблема, объявления в .h, определения в .cpp. Компилируете библиотеку, получаете объектный файл (можно сделать и в lib). Потом в проекте там, где нужны объявления из библиотеки, включаете .h. Компилируете проект, указывая в -I путь к папке с .h - получаете набор объектных файлов. Потом линкуете все объектные файлы - из проекта и либы.
Yandex
Объявления
24.05.2013, 19:15     Библиотека (.h + .cpp) в папку include компилятора
Ответ Создать тему
Опции темы

Текущее время: 10:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru