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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Egor138
 Аватар для Egor138
30 / 11 / 2
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
#1

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

10.11.2013, 16:35. Просмотров 284. Ответов 4
Метки нет (Все метки)

Написал набор классов и функций для своего удобства, чтобы подключать их в любом проекте. Всего получилось 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 неразрешенных внешних элементов
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.11.2013, 16:35     Организация библиотеки
Посмотрите здесь:

C++ Организация проекта на C++
Организация программы. C++
C++ Организация Меню в С++
Организация двоичного файла с помощью стандартной библиотеки C++
Организация цикла С++ C++
Организация счетчика C++
C++ Организация наследования
C++ Организация циклов в С
Организация БД по дате C++
Организация исходников C++
Организация программы C++
C++ Организация функции

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ct0r
C++/Haskell
 Аватар для ct0r
1665 / 591 / 40
Регистрация: 19.08.2012
Сообщений: 1,216
Завершенные тесты: 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
1665 / 591 / 40
Регистрация: 19.08.2012
Сообщений: 1,216
Завершенные тесты: 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     Организация библиотеки
Ответ Создать тему
Опции темы

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