Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Egor138
32 / 13 / 3
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
#1

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

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

Организация двоичного файла с помощью стандартной библиотеки
Подскажите пожалуйста как мне организовать двоичный файл с помощью стандартной...

про библиотеки в VS C++ (какие библиотеки нужны для функций 'cout' и 'cin')
какие библиотеки нужны для функций 'cout' и 'cin' ???

Как включить библиотеки в исполняемый файл, чтобы не приходилось ставить библиотеки (Eclipse)
Как включить библиотеки в конечный EXE как это сделано в bilder, чтобы не...

Вызов функции одной динамической библиотеки из другой динамической библиотеки
Добрый день! Помогите пожалуйста разобраться со следующим вопросом. ...

Организация исходников
Не нашел в гугле толковый инфы. Вот есть у меня допустим два класса, нейрон и...

Организация памяти.
Здравствуйте. Объясните, пожалуйста, вот что: Допустим есть класс, с...

4
ct0r
Игогошка!
1784 / 686 / 43
Регистрация: 19.08.2012
Сообщений: 1,323
Завершенные тесты: 1
10.11.2013, 17:04 #2
Цитата Сообщение от Egor138 Посмотреть сообщение
Поместил я эти файлы и деректорию Include моей студии. Когда в проекте подключаю файл и использую какую либо функцию, выпадает ошибка, ССылка на нерасрешенную лексему.....
Исправляется все если я все эти файлы складываю в папку проекта и ВКЛЮЧАЮ их а сам проект.
Что я не так сделал???
У тебя не хедерс-онли библиотека, поэтому одними инклюдами не обойтись, - откуда же тогда линкер должен брать реализацию? Нужно либо делать хедерс-онли, либо библиотеку собирать и импортировать уже из нее в свой проект.
1
Egor138
32 / 13 / 3
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
10.11.2013, 17:21  [ТС] #3
Цитата Сообщение от ct0r Посмотреть сообщение
У тебя не хедерс-онли библиотека, поэтому одними инклюдами не обойтись, - откуда же тогда линкер должен брать реализацию? Нужно либо делать хедерс-онли, либо библиотеку собирать и импортировать уже из нее в свой проект.

А как сделать эту хедерс-онли?? Что это вообще такое?
0
ct0r
Игогошка!
1784 / 686 / 43
Регистрация: 19.08.2012
Сообщений: 1,323
Завершенные тесты: 1
10.11.2013, 17:30 #4
Хедер-онли - когда в хедерах есть полные определения классов и функций. Это одна из возможностей, но я бы тебе ее не советовал использовать. Потому что:
1) время компиляции проекта увеличивается
2) изменяешь библиотеку - надо перекомпилировать проект
3) раздувание кода - есть лишние инлайны
4) пользователь помимо интерфейса будет видеть и реализацию.
Хедер-онли делать имеет смысл, когда ты работаешь с шаблонами. В остальных случаях обычная библиотека лучше.
1
Egor138
32 / 13 / 3
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
10.11.2013, 17:35  [ТС] #5
Цитата Сообщение от ct0r Посмотреть сообщение
Хедер-онли - когда в хедерах есть полные определения классов и функций. Это одна из возможностей, но я бы тебе ее не советовал использовать. Потому что:
1) время компиляции проекта увеличивается
2) изменяешь библиотеку - надо перекомпилировать проект
3) раздувание кода - есть лишние инлайны
4) пользователь помимо интерфейса будет видеть и реализацию.
Хедер-онли делать имеет смысл, когда ты работаешь с шаблонами. В остальных случаях обычная библиотека лучше.
Спасибо это я понял. У меня ввсе реализованно:

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

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

Вы говорите обычная библиотека лучше. Как мне тогда показать что есть этот cpp файл
0
10.11.2013, 17:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.11.2013, 17:35
Привет! Вот еще темы с решениями:

Организация циклов в C++
Не могу никак справиться с этим заданием: Дано натуральное число N: опредилить...

Организация программы.
Здравствуйте. Как организовать программу? Дана матрица с ней производится ряд...

Организация наследования
Здраствуйте! У меня есть несколько классов: class Base { public: int...

Организация меню
Само задание сделал, но не могу понять, как делать менюшку...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru