2013-07-02 6 views
1

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

Насколько я знаю, вы создаете новую программу Win32, а затем добавляете файл заголовка (.h) и файл кода (.cpp).

Так что на самом деле у меня есть несколько вопросов.

1 - Как поместить мой код в эти файлы? Использую ли я .cpp?

2 - Мне удалось создать простую библиотеку с функцией добавления, но после компиляции и ее создания я не смог # включить ее в программу. Почему это?

Может кто-то, пожалуйста, напишите пошаговый подход к этому, чтобы я мог, наконец, это сделать. Я знаю, что у MSDN есть учебник для этого, и я посмотрел на него. Дело в том, что он использует подход ООП для создания статической библиотеки, а вызовы функций в библиотеке часто используют оператор :: (думаю, его оператор), чего я хочу избежать. Хотел бы начать простой, в основном.

Спасибо за предоставленную помощь.

+0

Я добавил теги 'windows' и' visual-C++ '; Я предполагаю, что это правильно? Если нет, отредактируйте их самостоятельно. – trojanfoe

+0

Чтобы использовать статическую библиотеку в другом проекте, вы должны включить файл заголовков и ссылку на файл * .lib, который создается библиотекой. –

+0

Как вы это делаете? Я знаю, что вы #include "yourlibrary.h" , но как вы ссылаетесь на файл .lib и где находится этот файл? – Inafune

ответ

1

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

Чтобы использовать библиотеку, вы включаете файлы заголовков, которые вам нужны, а затем свяжите файл библиотеки с вашей программой.

Вот ссылка на прохождение микрософт. http://msdn.microsoft.com/en-us/library/vstudio/ms235627.aspx

Как создать и использовать статическую библиотеку с помощью Visual Studio

Вот excactly, как вы делаете это в Visual Studio 2012.

  • Чтобы создать библиотеку, создать новый C++ проект. В мастере в разделе «Параметры приложения» выберите «Статическая библиотека». Снимите флажок «Предварительно скомпилированный заголовок».
  • Создайте свою библиотеку так, как хотите. Не забудьте объявить все в заголовочных файлах.
  • Скомпилируйте проект, как обычно. Это создает файл .lib в папке отладки вашего решения .
  • Чтобы использовать библиотеку, создайте приложение, как обычно.
  • Чтобы связать библиотеку с вашим проектом, перетащите файл .lib в свой проект в визуальной студии.
  • Чтобы визуальная студия находила ваши файлы заголовков, щелкните правой кнопкой мыши ваш проект. Выберите «Свойства» -> «Свойства конфигурации» -> «С/С ++». Существует поле ввода под названием Дополнительные каталоги Include. Здесь вы должны написать путь к файлам заголовков вашей библиотеки.

Теперь вы можете использовать заголовочные файлы, как если бы они делали ваш проект напрямую. Реализация вашей библиотеки взята из файла .lib, и все должно хорошо компилироваться и работать.

Другой вариант, ссылается на весь проект библиотеки в вашем приложении. Для этого вы должны получить проект библиотеки в своем решении. Щелкните правой кнопкой мыши свое решение в Visual Studio-> Add-> Existing Project. Затем вам нужно обратиться к проекту. Щелкните правой кнопкой мыши свой проект-> Ссылки-> Общие свойства-> Рамки и ссылки-> Добавить новую ссылку-> Выберите проект. Теперь вы можете редактировать свою библиотеку в этом решении и использовать его прямо в своем приложении.

+0

Спасибо. Я смотрел на эту глупую ссылку MSDN весь день, но тем не менее, я ее ценю. Я пишу свой код в .h (header)? Так что, когда я это делаю, мне нужно # включить любые другие библиотеки, которые нужны моему коду? – Inafune

+0

Вы пишете весь свой код в файлах .h? Если это так, вы должны научиться правильно использовать файлы заголовков и .cpp-файлы. Это очень важно. Если вы компилируете в качестве библиотеки, вам все равно придется включать файлы заголовков. И да, если ваша библиотека зависит от других библиотек, вам также придется связываться с ними. –

+0

Нет, я этого не делал, я спрашивал Аарта, было ли это правильно, потому что я не верил, что это правда. Из того, что я знаю, вы пишете определения любых функций в файле .cpp. Как я уже упоминал, несмотря на то, что у вас даже есть книга об этом, никогда нет четкого указания на то, что вам нужно сделать, чтобы создать статическую библиотеку. Я пытаюсь сделать это в данный момент с файлом .h, связанным с моей программой. Как добавить .cpp в программу? MSDN говорит об изменении ссылок через IDE? – Inafune

Смежные вопросы