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

Организация библиотеки - C++

Восстановить пароль Регистрация
 
Egor138
 Аватар для Egor138
30 / 11 / 2
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
10.11.2013, 16:35     Организация библиотеки #1
Написал набор классов и функций для своего удобства, чтобы подключать их в любом проекте. Всего получилось 35 файлов.

Поместил я эти файлы и деректорию Include моей студии. Когда в проекте подключаю файл и использую какую либо функцию, выпадает ошибка, ССылка на нерасрешенную лексему.....
Исправляется все если я все эти файлы складываю в папку проекта и ВКЛЮЧАЮ их а сам проект.
Что я не так сделал???

Все файлы в папке Libs по адресу C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include

C++
1
2
3
4
5
6
7
8
9
10
11
#include <Libs/DFL.h>
 
void main()
{
       MainLoop();
}
 
 
"void __cdecl Sys::MainLoop(int)" (?MainLoop@Sys@@$$FYAXH@Z) в функции "int __cdecl main(void)" (?main@@$$HYAHXZ)
ссылка на неразрешенный внешний символ "void __cdecl Sys::MainLoop(int)" (?MainLoop@Sys@@$$FYAXH@Z) в функции "int __cdecl main(void)" (?main@@$$HYAHXZ)
2 неразрешенных внешних элементов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ct0r
C++/Haskell
 Аватар для ct0r
1550 / 569 / 39
Регистрация: 19.08.2012
Сообщений: 1,174
Завершенные тесты: 1
10.11.2013, 17:04     Организация библиотеки #2
Цитата Сообщение от Egor138 Посмотреть сообщение
Поместил я эти файлы и деректорию Include моей студии. Когда в проекте подключаю файл и использую какую либо функцию, выпадает ошибка, ССылка на нерасрешенную лексему.....
Исправляется все если я все эти файлы складываю в папку проекта и ВКЛЮЧАЮ их а сам проект.
Что я не так сделал???
У тебя не хедерс-онли библиотека, поэтому одними инклюдами не обойтись, - откуда же тогда линкер должен брать реализацию? Нужно либо делать хедерс-онли, либо библиотеку собирать и импортировать уже из нее в свой проект.
Egor138
 Аватар для Egor138
30 / 11 / 2
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
10.11.2013, 17:21  [ТС]     Организация библиотеки #3
Цитата Сообщение от ct0r Посмотреть сообщение
У тебя не хедерс-онли библиотека, поэтому одними инклюдами не обойтись, - откуда же тогда линкер должен брать реализацию? Нужно либо делать хедерс-онли, либо библиотеку собирать и импортировать уже из нее в свой проект.

А как сделать эту хедерс-онли?? Что это вообще такое?
ct0r
C++/Haskell
 Аватар для ct0r
1550 / 569 / 39
Регистрация: 19.08.2012
Сообщений: 1,174
Завершенные тесты: 1
10.11.2013, 17:30     Организация библиотеки #4
Хедер-онли - когда в хедерах есть полные определения классов и функций. Это одна из возможностей, но я бы тебе ее не советовал использовать. Потому что:
1) время компиляции проекта увеличивается
2) изменяешь библиотеку - надо перекомпилировать проект
3) раздувание кода - есть лишние инлайны
4) пользователь помимо интерфейса будет видеть и реализацию.
Хедер-онли делать имеет смысл, когда ты работаешь с шаблонами. В остальных случаях обычная библиотека лучше.
Egor138
 Аватар для Egor138
30 / 11 / 2
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
10.11.2013, 17:35  [ТС]     Организация библиотеки #5
Цитата Сообщение от ct0r Посмотреть сообщение
Хедер-онли - когда в хедерах есть полные определения классов и функций. Это одна из возможностей, но я бы тебе ее не советовал использовать. Потому что:
1) время компиляции проекта увеличивается
2) изменяешь библиотеку - надо перекомпилировать проект
3) раздувание кода - есть лишние инлайны
4) пользователь помимо интерфейса будет видеть и реализацию.
Хедер-онли делать имеет смысл, когда ты работаешь с шаблонами. В остальных случаях обычная библиотека лучше.
Спасибо это я понял. У меня ввсе реализованно:

в h функция
в cpp реализация

B мой проект не видит этого cpp файла.

Вы говорите обычная библиотека лучше. Как мне тогда показать что есть этот cpp файл
Yandex
Объявления
10.11.2013, 17:35     Организация библиотеки
Ответ Создать тему
Опции темы

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