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

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

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

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

10.11.2013, 16:35. Просмотров 312. Ответов 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++
Подскажите пожалуйста как мне организовать двоичный файл с помощью стандартной библиотеки. Например, следующий код: ofstream...

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

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

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

Организация наследования - C++
Здраствуйте! У меня есть несколько классов: class Base { public: int baseGet() { return i; } void...

Организация проекта на C++ - C++
Как правильно организовать большой проект? Незная этого я создал так: stdafx.h включает в себя все заголовки один из включаемых...

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

А как сделать эту хедерс-онли?? Что это вообще такое?
ct0r
Игогошка!
1768 / 670 / 42
Регистрация: 19.08.2012
Сообщений: 1,284
Завершенные тесты: 1
10.11.2013, 17:30     Организация библиотеки #4
Хедер-онли - когда в хедерах есть полные определения классов и функций. Это одна из возможностей, но я бы тебе ее не советовал использовать. Потому что:
1) время компиляции проекта увеличивается
2) изменяешь библиотеку - надо перекомпилировать проект
3) раздувание кода - есть лишние инлайны
4) пользователь помимо интерфейса будет видеть и реализацию.
Хедер-онли делать имеет смысл, когда ты работаешь с шаблонами. В остальных случаях обычная библиотека лучше.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.11.2013, 17:35     Организация библиотеки
Еще ссылки по теме:

Организация программы. - C++
Здравствуйте. Как организовать программу? Дана матрица с ней производится ряд операций. После этих операций матрица проверяется на...

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

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

Организация цикла С++ - C++
Добрый день. Нужно организовать ниже приведенный код таким образом чтобы программа никогда не выводила более 10 чисел в одной строке, и...


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

Или воспользуйтесь поиском по форуму:
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     Организация библиотеки
Ответ Создать тему
Опции темы

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