Как создать lib файл c на visual
Как же подключить/загрузить внешнюю динамическую библиотеку в свою программу/проект, написанную на языке программирования C++ в IDE Microsoft Visual Studio, в ОС Microsoft Windows?
Состав
Типы файлов
Для начала, давайте разберёмся, что обычно представляет собой любая динамическая библиотека, написанная на, и созданная для программ С++? Это от 1 до 4 типов файлов:
Из всего списка главным являются только файлы с расширением .dll, т.е. остальных файлов может и не быть.
Количество
У одной библиотеки может быть множество файлов таких типов. Все они, обычно, рассортированы по соответствующим папкам, чтобы было легче подключать в IDE.
Вариации
Файлы dll, lib и exp различаются по платформе (ОС), архитектуре, конфигурации, etc. В одной версии библиотеки может предоставляться сразу несколько альтернативных вариаций одинаковых по функционалу файлов. E.g.:
Всё это крайне важно, всё надо учитывать при подключении библиотеки к проекту. Свойства проекта в Visual C++ могут устанавливаться отдельно для каждой конфигурации (Release, Debug) и архитектуры/платформы (x32 (x86), x64).
Подключение
Перед тем, как подключать файлы библиотеки к своей программе, надо сперва открыть необходимый проект в IDE Visual Studio: Главное меню > Файл > Открыть проект.
Заголовочные файлы (.h)
Файлы таблиц импорта и экспорта (.lib, .exp)
Файл таблицы импорта (.lib)
Помимо указания IDE директории расположения файлов таблиц импорта (.lib), их также для линковки надо дополнительно явно указать. Сделать это можно двумя способами:
Можно использовать сразу два способа.
Я рекомендую использовать второй вариант, когда все подключения пишутся непосредственно в коде. Так нагляднее и переносимость кода увеличивается, когда всё, что нужно написано в самом коде, а не где-то там в настройках IDE.
Файлы библиотек (.dll)
Параметры конфигурации препроцессора
Также не забывайте указывать параметры конфигурации препроцессора тут: Главное меню > Проект > Свойства проекта > Свойства конфигурации > C/C++ > Препроцессор > Определения препроцессора. Параметры являются комбинированием в определённой последовательности определённых литералов. Вот некоторые из них:
Некоторые возможные варианты параметров:
- MT_StaticRelease
- MTd_StaticDebug
- MD_DynamicRelease
Это далеко не все возможные параметры.
Примечания
Пути директории указывать без конечного слеша.
Опция Компоновщик
Библиотеки
Заключение
На самом деле, подключать сразу столько всего зачастую не нужно. Как правило, предоставляется только исходный код и всё. Приходится самостоятельно из исходников компилировать библиотеки (файлы .dll и .lib). Т.е. нужно будет указать только заголовочные файлы .h, которые являются частью исходников.
Создание и использование статических библиотек .lib в visual studio.
Дальше нажимаем ок и мы переходим к следующему окошку.
Все дальше жмем готово и у нас создается новый проект в котором будут создаваться не программы exe а статические библиотеки lib.
Дальше в этот проект MyNewLib добавляем два файла один заголовочный я его назвал function.h от его код:
Распространяемые пакеты Microsoft Visual C++ (Visual C++ Redistributable) содержат необходимые компоненты для запуска игр и программ, разработанных с помощью соответствующих версий Visual Studio и, как правило, нужны при ошибках вида «Запуск программы невозможен» так как файлы DLL с названиями, начинающимися с msvcr или msvcp отсутствуют на компьютере. Чаще всего требуются компоненты Visual Studio 2012, 2013 и 2015, но есть возможность загрузки и установки распространяемых пакетов Visual C++ 2005-2019.
Далее в инструкции способы скачать распространяемые компоненты Visual C++ для Windows 10, 8.1 и Windows 7, x64 и x86 (32-бит) официальным способом с сайта Майкрософт и путем установки из стороннего источника, о проблемах, с которыми можно столкнуться при установке и дополнительная информация, которая может оказаться полезной.
Загрузка распространяемых пакетов Visual C++ с сайта Майкрософт
Первый из способов скачать компоненты Visual C++ — официальный и, соответственно, самый безопасный. Для загрузки доступны следующие компоненты (при этом некоторые из них можно загрузить разными способами).
- Visual Studio 2015-2019 — при установке этого набора устанавливаются все необходимые компоненты Visual C++ 2015, 2017 и 2019 в рамках одного файла установщика.
- Visual Studio 2013 (Visual C++ 12.0)
- Visual Studio 2012 (Visual C++ 11.0)
- Visual Studio 2010 SP1
- Visual Studio 2008 SP1
Важное примечание: если вы загружаете библиотеки для исправления ошибок при запуске игр и программ (DLL отсутствует), а ваша система — 64-разрядная, следует скачать и установить как x86 компоненты (для 32-бит), так и x64 версии, так как многим программам для запуска нужны библиотеки 32-бит (x86) даже в x64 Windows 10, 8.1 и Windows 7.
Порядок загрузки компонентов будет следующим:
Также на сайте Майкрософт доступны отдельные страницы для загрузки распространяемых пакетов Microsoft Visual C++ список таких страниц далее:
После скачивания нужных компонентов Visual C++, запускаем загруженные файлы и проходим весь процесс установки.
Возможные проблемы при установке:
- Если при установке отдельных компонентов вам сообщат, что они уже есть на компьютере, попробуйте установщик другой разрядности (возможно, не хватает именно его).
- Если вы уверены, что проблемы при запуске программ или игр вызваны каким-то набором компонентов, но он не устанавливается, посмотрите: присутствует ли он в списке в Панель управления — Программы и компоненты. Если да, то попробуйте удалить его там и заново запустить установщик.
- Если вы отключали какие-либо службы Windows 10, 8.1 и Windows 7, связанные с обновлениями или «установщиком Windows», это может приводить к ошибкам при установке библиотек Visual C++.
- Отдельные инструкции про ошибку 0x80070666 при установке компонентов Visual C++ и Неопознанную ошибку 0x80240017.
Неофициальный способ скачать библиотеки DLL — Visual C++ Runtime Installer (All-In-One)
Есть и неофициальные установщики необходимых для запуска программ DLL файлов Visual Studio. Один из таких установщиков, судя по всему, безопасный (три обнаружения в VirusTotal похожи на ложные срабатывания) — Visual C++ Runtime Installer (All-In-One), устанавливающий сразу все необходимые компоненты (x86 и x64) из одного установщика.
Процесс установки выглядит следующим образом:
- Запуск установщика и нажатие Y в окне установщика.
- Дальнейший процесс установки будет автоматическим, при этом, перед установкой компонентов, существующие наборы распространяемых пакетов Visual Studio будут удалены с компьютера. Устанавливаются распространяемые пакеты Visual C++ 2005-2017 годов, а также дополнительные библиотеки.
Видео инструкция
Если остаются вопросы, задавайте в комментариях, но, надеюсь, проблемы были решены, а необходимые компоненты установлены.
В этом пошаговом руководстве описывается создание статической библиотеки (LIB-файла) для использования с приложениями C++. Статические библиотеки являются хорошим способом повторного использования кода. Вместо того чтобы каждый раз реализовывать одни и те же подпрограммы для обеспечения той или иной функциональности в каждом создаваемом приложении, их можно создать единожды и затем вызывать из приложений. Код, связанный из статической библиотеки, станет частью приложения — . для использования кода не нужно устанавливать другой файл.
В этом пошаговом руководстве рассматриваются следующие задачи:
Предварительные требования
Для работы необходимо владеть основами языка C++.
Создание проекта статической библиотеки
Инструкции по созданию проекта зависят от используемой версии Visual Studio. Чтобы ознакомиться с документацией по предпочтительной версии Visual Studio, используйте селектор Версия. Он находится в верхней части оглавления на этой странице.
Создание проекта статической библиотеки в Visual Studio
в строке меню выберите файл создать Project , чтобы открыть диалоговое окно создание нового Project .
в верхней части диалогового окна задайте для параметра Language значение C++, задайте для параметра Platform значение Windowsи задайте для параметра Project тип значение Library.
В отфильтрованном списке типов проектов выберите пункт Мастер классических приложений Windows, а затем нажмите кнопку Далее.
В диалоговом окне Проект классического приложения Windows в разделе Тип приложения выберите Статическая библиотека (.lib) .
В разделе Дополнительные параметры снимите флажок Предварительно откомпилированный заголовок, если он установлен. Установите флажок Пустой проект.
Создание проекта статической библиотеки в Visual Studio 2017
В строке меню выберите Файл Создать Проект.
в диалоговом окне создание Project выберите установленный Visual C++ Windows рабочий стол. На центральной панели выберите Мастер классических приложений Windows.
В диалоговом окне Проект классического приложения Windows в разделе Тип приложения выберите Статическая библиотека (.lib) .
В разделе Дополнительные параметры снимите флажок Предварительно откомпилированный заголовок, если он установлен. Установите флажок Пустой проект.
Создание проекта статической библиотеки в Visual Studio 2015
В строке меню выберите Файл Создать Проект.
в диалоговом окне создание Project выберите установленные шаблоны Visual C++ Win32. В центральной области выберите Консольное приложение Win32.
В мастере приложений Win32 нажмите кнопку Далее.
На странице Параметры приложения в разделе Тип приложения выберите Статическая библиотека. В разделе Дополнительные параметры снимите флажок Предварительно откомпилированный заголовок. Чтобы создать проект, нажмите кнопку Готово.
Добавление класса в статическую библиотеку
Добавление класса в статическую библиотеку
Чтобы создать файл заголовка для нового класса, щелкните правой кнопкой мыши, чтобы открыть контекстное меню проекта маслибрари в Обозреватель решений, а затем выберите команду добавить новый элемент.
В диалоговом окне Добавление нового элемента выберите Visual C++ код. В центральной области выберите Заголовочный файл (.h) . Укажите имя файла заголовка — , например —, — а затем нажмите кнопку — . Отобразится почти пустой файл заголовка.
Добавьте объявление класса с именем Arithmetic для выполнения обычных арифметических операций, таких как сложение, вычитание, умножение и деление. Код должен выглядеть примерно так:
Чтобы создать исходный файл для нового класса, откройте контекстное меню проекта маслибрари в Обозреватель решений, а затем выберите добавить новый элемент.
В диалоговом окне Добавление нового элемента в центральной области выберите Файл C++ (.cpp) . Укажите имя исходного файла — , например —, — а затем нажмите кнопку — . Отобразится пустой исходный файл.
Используйте этот исходный файл для реализации функций класса Arithmetic . Код должен выглядеть примерно так:
Чтобы построить статическую библиотеку, выберите Сборкапостроить решение в строке меню. В результате будет создана статическая библиотека MathLibrary.lib, которая может использоваться другими программами.
При выполнении сборки из командной строки Visual Studio программа собирается в два этапа. Сначала выполните команду, cl /c /EHsc MathLibrary.cpp чтобы скомпилировать код и создать объектный файл с именем cl /c /EHsc MathLibrary.cpp . ( cl Команда вызывает компилятор, Cl.exe, а /c параметр указывает Compile без компоновки. Дополнительные сведения см. в разделе /c (компиляция без компоновки). Затем выполните команду, lib MathLibrary.obj чтобы связать код и создать статическую библиотеку lib MathLibrary.obj . (Команда lib вызывает диспетчер библиотек, Lib.exe. Дополнительные сведения см. в разделе LIB Reference.)
Создание консольного приложения C++, ссылающегося на статическую библиотеку
Создание консольного приложения C++, ссылающегося на статическую библиотеку, в Visual Studio
В обозревателе решений щелкните правой кнопкой мыши узел верхнего уровня Решение StaticMath, чтобы открыть контекстное меню. выберите добавить новый Project , чтобы открыть диалоговое окно добавление нового Project .
В верхней части диалогового окна задайте для фильтра Тип проекта значение Консоль.
В отфильтрованном списке типов проектов щелкните Консольное приложение, а затем нажмите кнопку Далее. На следующей странице в поле Имя введите имя проекта MathClient.
После создания консольного приложения будет создана пустая программа. Имя исходного файла будет совпадать с ранее выбранным именем. В этом примере он имеет имя MathClient.cpp .
Создание консольного приложения C++, ссылающегося на статическую библиотеку, в Visual Studio 2017
В обозревателе решений щелкните правой кнопкой мыши узел верхнего уровня Решение StaticMath, чтобы открыть контекстное меню. нажмите кнопку добавить новый Project , чтобы открыть диалоговое окно добавление нового Project .
в диалоговом окне добавление нового Project выберите установленный Visual C++ Windows рабочий стол. На центральной панели выберите Мастер классических приложений Windows.
В диалоговом окне Проект классического приложения Windows в разделе Тип приложения выберите Консольное приложение (EXE) .
В разделе Дополнительные параметры снимите флажок Предварительно откомпилированный заголовок, если он установлен.
После создания консольного приложения будет создана пустая программа. Имя исходного файла будет совпадать с ранее выбранным именем. В этом примере он имеет имя MathClient.cpp .
Создание консольного приложения C++, ссылающегося на статическую библиотеку, в Visual Studio 2015
В обозревателе решений щелкните правой кнопкой мыши узел верхнего уровня Решение StaticMath, чтобы открыть контекстное меню. нажмите кнопку добавить новый Project , чтобы открыть диалоговое окно добавление нового Project .
в диалоговом окне добавление нового Project выберите установлено Visual C++ Win32. В центральной области выберите Консольное приложение Win32.
В диалоговом окне Мастер приложений Win32 нажмите кнопку Далее.
На странице Параметры приложения выберите в поле Тип приложения пункт Консольное приложение. В разделе Дополнительные параметры снимите флажок Предварительно откомпилированный заголовок, а затем установите флажок Пустой проект. Чтобы создать проект, нажмите кнопку Готово.
Чтобы добавить исходный файл в пустой проект, щелкните правой кнопкой мыши, чтобы открыть контекстное меню проекта масклиент в Обозреватель решений, а затем выберите команду добавить новый элемент.
В диалоговом окне Добавление нового элемента выберите Visual C++ код. В центральной области выберите Файл C++ (.cpp) . Укажите имя исходного файла — , например —, — а затем нажмите кнопку — . Отобразится пустой исходный файл.
Использование функциональности из статической библиотеки в приложении
Использование функциональности из статической библиотеки в приложении
Для использования математических процедур из статической библиотеки необходимо сослаться на эту библиотеку. Откройте контекстное меню проекта масклиент в Обозреватель решений, а затем выберите добавить ссылку.
В диалоговом окне Добавление ссылки перечислены библиотеки, на которые можно создать ссылку. На вкладке Проекты перечислены проекты текущего решения и все библиотеки, на которые они ссылаются. На вкладке Проекты установите флажок MathLibrary, а затем нажмите кнопку ОК.
Выберите страницу свойств Свойства конфигурации C/C++ Общие . В свойстве Дополнительные каталоги включаемых файлов укажите путь к каталогу MathLibrary или найдите этот каталог.
Чтобы найти путь к каталогу, выполните указанные ниже действия.
Откройте раскрывающийся список значений свойства Дополнительные каталоги включаемых файлов, а затем выберите Изменить.
В диалоговом окне Выбор каталога перейдите на уровень вверх и выберите каталог MathLibrary. Затем нажмите кнопку Выбрать папку, чтобы сохранить выбор.
В диалоговом окне Дополнительные каталоги включаемых файлов нажмите кнопку ОК.
Чтобы создать исполняемый файл, выберите Сборкапостроить решение в строке меню.
Запуск приложения
Запуск приложения
Убедитесь в том, что проект MathClient выбран в качестве проекта по умолчанию. Чтобы выбрать его, в обозревателе решений откройте контекстное меню проекта MathClient и выберите команду Назначить запускаемым проектом.
Чтобы запустить проект, в строке меню выберите Отладка Запуск без отладки. Выходные данные должны выглядеть примерно так:
This step-by-step walkthrough shows how to create a static library (.lib file) for use with C++ apps. Using a static library is a great way to reuse code. Rather than reimplementing the same routines in every app that requires the functionality, you write them one time in a static library and then reference it from the apps. Code linked from a static library becomes part of your app—you don't have to install another file to use the code.
This walkthrough covers these tasks:
Prerequisites
An understanding of the fundamentals of the C++ language.
Create a static library project
The instructions for how to create the project vary depending on your version of Visual Studio. To see the documentation for your preferred version of Visual Studio, use the Version selector control. It's found at the top of the table of contents on this page.
To create a static library project in Visual Studio
On the menu bar, choose File > New > Project to open the Create a New Project dialog.
At the top of the dialog, set Language to C++, set Platform to Windows, and set Project type to Library.
From the filtered list of project types, select Windows Desktop Wizard, then choose Next.
In the Configure your new project page, enter MathLibrary in the Project name box to specify a name for the project. Enter StaticMath in the Solution name box. Choose the Create button to open the Windows Desktop Project dialog.
In the Windows Desktop Project dialog, under Application type, select Static Library (.lib).
Under Additional options, uncheck the Precompiled header check box if it's checked. Check the Empty project box.
Choose OK to create the project.
To create a static library project in Visual Studio 2017
On the menu bar, choose File > New > Project.
In the New Project dialog box, select Installed > Visual C++ > Windows Desktop. In the center pane, select Windows Desktop Wizard.
Specify a name for the project—for example, MathLibrary—in the Name box. Specify a name for the solution—for example, StaticMath—in the Solution Name box. Choose the OK button.
In the Windows Desktop Project dialog, under Application type, select Static Library (.lib).
Under Additional Options, uncheck the Precompiled header check box if it's checked. Check the Empty project box.
Choose OK to create the project.
To create a static library project in Visual Studio 2015
On the menu bar, choose File > New > Project.
In the New Project dialog box, select Installed > Templates > Visual C++ > Win32. In the center pane, select Win32 Console Application.
Specify a name for the project—for example, MathLibrary—in the Name box. Specify a name for the solution—for example, StaticMath—in the Solution Name box. Choose the OK button.
In the Win32 Application Wizard, choose Next.
In the Application Settings page, under Application type, select Static library. Under Additional options, uncheck the Precompiled header checkbox. Choose Finish to create the project.
Add a class to the static library
To add a class to the static library
To create a header file for a new class, right-click to open the shortcut menu for the MathLibrary project in Solution Explorer, and then choose Add > New Item.
In the Add New Item dialog box, select Visual C++ > Code. In the center pane, select Header File (.h). Specify a name for the header file—for example, MathLibrary.h—and then choose the Add button. A nearly blank header file is displayed.
Add a declaration for a class named Arithmetic to do common mathematical operations such as addition, subtraction, multiplication, and division. The code should resemble:
To create a source file for the new class, open the shortcut menu for the MathLibrary project in Solution Explorer, and then choose Add > New Item.
In the Add New Item dialog box, in the center pane, select C++ File (.cpp). Specify a name for the source file—for example, MathLibrary.cpp—and then choose the Add button. A blank source file is displayed.
Use this source file to implement the functionality for class Arithmetic . The code should resemble:
To build the static library, select Build > Build Solution on the menu bar. The build creates a static library, MathLibrary.lib, that can be used by other programs.
When you build on the Visual Studio command line, you must build the program in two steps. First, run cl /c /EHsc MathLibrary.cpp to compile the code and create an object file that's named MathLibrary.obj. (The cl command invokes the compiler, Cl.exe, and the /c option specifies compile without linking. For more information, see /c (Compile Without Linking).) Second, run lib MathLibrary.obj to link the code and create the static library MathLibrary.lib. (The lib command invokes the Library Manager, Lib.exe. For more information, see LIB Reference.)
Create a C++ console app that references the static library
To create a C++ console app that references the static library in Visual Studio
In Solution Explorer, right-click on the top node, Solution 'StaticMath', to open the shortcut menu. Choose Add > New Project to open the Add a New Project dialog.
At the top of the dialog, set the Project type filter to Console.
From the filtered list of project types, choose Console App then choose Next. In the next page, enter MathClient in the Name box to specify a name for the project.
Choose the Create button to create the client project.
After you create a console app, an empty program is created for you. The name for the source file is the same as the name that you chose earlier. In the example, it's named MathClient.cpp .
To create a C++ console app that references the static library in Visual Studio 2017
In Solution Explorer, right-click on the top node, Solution 'StaticMath', to open the shortcut menu. Choose Add > New Project to open the Add a New Project dialog box.
In the Add New Project dialog box, select Installed > Visual C++ > Windows Desktop. In the center pane, select Windows Desktop Wizard.
Specify a name for the project—for example, MathClient—in the Name box. Choose the OK button.
In the Windows Desktop Project dialog, under Application type, select Console Application (.exe).
Under Additional Options, uncheck the Precompiled header check box if it's checked.
Choose OK to create the project.
After you create a console app, an empty program is created for you. The name for the source file is the same as the name that you chose earlier. In the example, it's named MathClient.cpp .
To create a C++ console app that references the static library in Visual Studio 2015
In Solution Explorer, right-click on the top node, Solution 'StaticMath', to open the shortcut menu. Choose Add > New Project to open the Add a New Project dialog box.
In the Add New Project dialog box, select Installed > Visual C++ > Win32. In the center pane, select Win32 Console Application.
Specify a name for the project—for example, MathClient—in the Name box. Choose the OK button.
In the Win32 Application Wizard dialog, choose Next.
On the Application Settings page, under Application type, make sure Console application is selected. Under Additional options, uncheck Precompiled header, then check the Empty Project checkbox. Choose Finish to create the project.
To add a source file to the empty project, right-click to open the shortcut menu for the MathClient project in Solution Explorer, and then choose Add > New Item.
In the Add New Item dialog box, select Visual C++ > Code. In the center pane, select C++ File (.cpp). Specify a name for the source file—for example, MathClient.cpp—and then choose the Add button. A blank source file is displayed.
Use the functionality from the static library in the app
To use the functionality from the static library in the app
Before you can use the math routines in the static library, you must reference it. Open the shortcut menu for the MathClient project in Solution Explorer, and then choose Add > Reference.
The Add Reference dialog box lists the libraries that you can reference. The Projects tab lists the projects in the current solution and any libraries they reference. Open the Projects tab, select the MathLibrary check box, and then choose the OK button.
To reference the MathLibrary.h header file, you must modify the included directories path. In Solution Explorer, right-click on MathClient to open the shortcut menu. Choose Properties to open the MathClient Property Pages dialog box.
In the MathClient Property Pages dialog box, set the Configuration drop-down to All Configurations. Set the Platform drop-down to All Platforms.
Select the Configuration Properties > C/C++ > General property page. In the Additional Include Directories property, specify the path of the MathLibrary directory, or browse for it.
To browse for the directory path:
Open the Additional Include Directories property value drop-down list, and then choose Edit.
In the Additional Include Directories dialog box, double-click in the top of the text box. Then choose the ellipsis button (. ) at the end of the line.
In the Select Directory dialog box, navigate up a level, and then select the MathLibrary directory. Then choose the Select Folder button to save your selection.
In the Additional Include Directories dialog box, choose the OK button.
In the Property Pages dialog box, choose the OK button to save your changes to the project.
To build the executable, choose Build > Build Solution on the menu bar.
Run the app
To run the app
Make sure that MathClient is selected as the default project. To select it, right-click to open the shortcut menu for MathClient in Solution Explorer, and then choose Set as StartUp Project.
To run the project, on the menu bar, choose Debug > Start Without Debugging. The output should resemble:
Как создать статические и динамические библиотеки из файлов .obj для Visual C ++?
Эта библиотека поставляется с некоторыми файлами .obj. Нет .lib или .dll файлов.
Я хочу конвертировать их в статические .lib и динамические .dll файлы.
Я скопировал все файлы .obj в каталог:
Но следующая команда не работает:
Как это сделать?
Решение
Да, вы можете сделать это, почти так же, как у вас есть.
LIB (lib.exe ) используется для создания статических библиотек. ССЫЛКА НА САЙТ (link.exe / DLL ) используется для создания динамических библиотек (создается библиотека .dll и библиотека импорта .lib).
При использовании link /DLL Для этой команды потребуются дополнительные стандартные библиотеки времени выполнения Win32 и C ++ (такие как MSVCRT.lib, User32.lib и т. д., а также библиотеки MFC).
В этом случае; похоже, это правильные аргументы компоновщика;
Заметка: созданные объектные файлы являются отладочными версиями, поэтому MSVCRTD.lib (обратите внимание на D) используется здесь. С помощью приведенных выше команд я смог успешно связать как .dll, так и статический .lib.
Дополнительные пути включения и библиотеки;
При распределении этих выходных данных для других сборок, возможно, потребуется включить в целевую сборку дополнительные пути к заголовкам и библиотекам. Чтобы добавить дополнительные места к путям поиска включений и библиотек, переменные среды ( INCLUDE а также LIB ) может быть добавлен в (либо для пользователя, либо для всей системы), но они также могут быть указаны в командной строке через /I а также /LIBPATH следующее;
- Запустите командную строку «Visual Studio», начиная с 2008 года, в меню «Пуск» должна быть ссылка «Командная строка Visual Studio 2008». Этот пакетный файл установит правильную среду для сборки C ++. Убедитесь, что выбран правильный набор инструментов для целей x86 или x64.
- Перейдите в каталог, содержащий объектные файлы.
- Запустите команду (ы), которые у вас есть (как указано выше).
Ваша ошибка LNK1104
Я подозреваю, что у вас ошибка, LNK1104 , скорее всего, потому что у вашего пользователя недостаточно прав для записи файлов в каталог «Program Files». Иначе, это может быть ошибка при использовании неверного набора инструментов для вашей цели (x86 против x64).
Другие решения
Пошаговое руководство. Создание и использование статической библиотеки
В этом пошаговом руководстве описывается создание статической библиотеки (LIB-файла) для использования с приложениями C++. Статические библиотеки являются хорошим способом повторного использования кода. Вместо того чтобы каждый раз реализовывать одни и те же подпрограммы для обеспечения той или иной функциональности в каждом создаваемом приложении, их можно создать единожды и затем вызывать из приложений. Код, подключенный из статической библиотеки, становится частью вашего приложения — для использования кода не нужно устанавливать еще какой-либо файл.
В этом пошаговом руководстве рассматриваются следующие задачи:
Предварительные требования
Для работы необходимо владеть основами языка C++.
Создание проекта статической библиотеки
Инструкции по созданию проекта зависят от используемой версии Visual Studio. Чтобы ознакомиться с документацией по предпочтительной версии Visual Studio, используйте селектор Версия. Он находится в верхней части оглавления на этой странице.
Создание проекта статической библиотеки в Visual Studio
В строке меню выберите Файл > Создать > Проект, чтобы открыть диалоговое окно Создание проекта.
В верхней части диалогового окна для параметра Язык установите значение C++ , для параметра Платформа — значение Windows, а для параметра Тип проекта — значение Библиотека.
В отфильтрованном списке типов проектов выберите пункт Мастер классических приложений Windows, а затем нажмите кнопку Далее.
В диалоговом окне Проект классического приложения Windows в разделе Тип приложения выберите Статическая библиотека (.lib) .
В разделе Дополнительные параметры снимите флажок Предварительно откомпилированный заголовок, если он установлен. Установите флажок Пустой проект.
Создание проекта статической библиотеки в Visual Studio 2017
В строке меню щелкните Файл > Создать > Проект.
В диалоговом окне Новый проект выберите Установленные > Visual C++ > Классическое приложение для Windows. На центральной панели выберите Мастер классических приложений Windows.
В диалоговом окне Проект классического приложения Windows в разделе Тип приложения выберите Статическая библиотека (.lib) .
В разделе Дополнительные параметры снимите флажок Предварительно откомпилированный заголовок, если он установлен. Установите флажок Пустой проект.
Создание проекта статической библиотеки в Visual Studio 2015
В строке меню щелкните Файл > Создать > Проект.
В диалоговом окне Новый проект выберите Установленные > Шаблоны > Visual C++ > Win32. В центральной области выберите Консольное приложение Win32.
В мастере приложений Win32 нажмите кнопку Далее.
На странице Параметры приложения в разделе Тип приложения выберите Статическая библиотека. В разделе Дополнительные параметры снимите флажок Предварительно откомпилированный заголовок. Чтобы создать проект, нажмите кнопку Готово.
Добавление класса в статическую библиотеку
Добавление класса в статическую библиотеку
Чтобы создать файл заголовка для нового класса откройте контекстное меню проекта MathLibrary в обозревателе решений, а затем выберите Добавить > Новый элемент.
В диалоговом окне Добавление нового элемента выберите пункт Visual C++ > Код. В центральной области выберите Заголовочный файл (.h) . Укажите имя для файла заголовка, например MathLibrary.h, и нажмите кнопку Добавить. Отобразится почти пустой файл заголовка.
Добавьте объявление класса с именем Arithmetic для выполнения обычных арифметических операций, таких как сложение, вычитание, умножение и деление. Код должен выглядеть примерно так:
Чтобы создать исходный файл для нового класса, откройте контекстное меню проекта MathLibrary в обозревателе решений, а затем выберите Добавить > Новый элемент.
В диалоговом окне Добавление нового элемента в центральной области выберите Файл C++ (.cpp) . Укажите имя исходного файла, например MathLibrary.cpp, и нажмите кнопку Добавить. Отобразится пустой исходный файл.
Используйте этот исходный файл для реализации функций класса Arithmetic . Код должен выглядеть примерно так:
Чтобы выполнить сборку статической библиотеки, выберите в строке меню команду Сборка > Собрать решение. В результате будет создана статическая библиотека MathLibrary.lib, которая может использоваться другими программами.
При выполнении сборки из командной строки Visual Studio программа собирается в два этапа. Сначала запустите cl /c /EHsc MathLibrary.cpp , чтобы скомпилировать код и создать объектный файл с именем MathLibrary.obj. (Команда cl вызывает компилятор Cl.exe, а параметр /c дает указание компилировать без компоновки. Дополнительные сведения см. в разделе Параметр /c (компиляция без связывания). Во-вторых, запустите файл lib MathLibrary.obj , чтобы связать код и создать статическую библиотеку MathLibrary.lib. (Команда lib вызывает диспетчер библиотек, Lib.exe. Дополнительные сведения см. в разделе LIB Reference.)
Создание консольного приложения C++, ссылающегося на статическую библиотеку
Создание консольного приложения C++, ссылающегося на статическую библиотеку, в Visual Studio
В обозревателе решений щелкните правой кнопкой мыши узел верхнего уровня Решение StaticMath, чтобы открыть контекстное меню. Выберите пункты Добавить > Новый проект, чтобы открыть диалоговое окно Добавить новый проект.
В верхней части диалогового окна задайте для фильтра Тип проекта значение Консоль.
В отфильтрованном списке типов проектов щелкните Консольное приложение, а затем нажмите кнопку Далее. На следующей странице в поле Имя введите имя проекта MathClient.
После создания консольного приложения будет создана пустая программа. Имя исходного файла будет совпадать с ранее выбранным именем. В этом примере он имеет имя MathClient.cpp .
Создание консольного приложения C++, ссылающегося на статическую библиотеку, в Visual Studio 2017
В обозревателе решений щелкните правой кнопкой мыши узел верхнего уровня Решение StaticMath, чтобы открыть контекстное меню. Выберите пункты Добавить > Новый проект, чтобы открыть диалоговое окно Добавить новый проект.
В диалоговом окне Добавление нового проекта выберите Установленные > Visual C++ > Классическое приложение для Windows. На центральной панели выберите Мастер классических приложений Windows.
В диалоговом окне Проект классического приложения Windows в разделе Тип приложения выберите Консольное приложение (EXE) .
В разделе Дополнительные параметры снимите флажок Предварительно откомпилированный заголовок, если он установлен.
После создания консольного приложения будет создана пустая программа. Имя исходного файла будет совпадать с ранее выбранным именем. В этом примере он имеет имя MathClient.cpp .
Создание консольного приложения C++, ссылающегося на статическую библиотеку, в Visual Studio 2015
В обозревателе решений щелкните правой кнопкой мыши узел верхнего уровня Решение StaticMath, чтобы открыть контекстное меню. Выберите пункты Добавить > Новый проект, чтобы открыть диалоговое окно Добавить новый проект.
В диалоговом окне Добавление нового проекта выберите Установленные > Visual C++ > Win32. В центральной области выберите Консольное приложение Win32.
В диалоговом окне Мастер приложений Win32 нажмите кнопку Далее.
На странице Параметры приложения выберите в поле Тип приложения пункт Консольное приложение. В разделе Дополнительные параметры снимите флажок Предварительно откомпилированный заголовок, а затем установите флажок Пустой проект. Чтобы создать проект, нажмите кнопку Готово.
Чтобы добавить исходный файл в пустой проект, откройте контекстное меню проекта MathClient в обозревателе решений, а затем выберите команду Добавить > Новый элемент.
В диалоговом окне Добавление нового элемента выберите пункт Visual C++ > Код. В центральной области выберите Файл C++ (.cpp) . Укажите имя исходного файла, например MathClient.cpp, и нажмите кнопку Добавить. Отобразится пустой исходный файл.
Использование функциональности из статической библиотеки в приложении
Использование функциональности из статической библиотеки в приложении
Для использования математических процедур из статической библиотеки необходимо сослаться на эту библиотеку. В обозревателе решений откройте контекстное меню проекта MathClient, а затем выберите команду Добавить > Ссылка.
В диалоговом окне Добавление ссылки перечислены библиотеки, на которые можно создать ссылку. На вкладке Проекты перечислены проекты текущего решения и все библиотеки, на которые они ссылаются. На вкладке Проекты установите флажок MathLibrary, а затем нажмите кнопку ОК.
Перейдите на страницу свойств Свойства конфигурации > C/C++ > Общие. В свойстве Дополнительные каталоги включаемых файлов укажите путь к каталогу MathLibrary или найдите этот каталог.
Чтобы найти путь к каталогу, выполните указанные ниже действия.
Откройте раскрывающийся список значений свойства Дополнительные каталоги включаемых файлов, а затем выберите Изменить.
В диалоговом окне Выбор каталога перейдите на уровень вверх и выберите каталог MathLibrary. Затем нажмите кнопку Выбрать папку, чтобы сохранить выбор.
В диалоговом окне Дополнительные каталоги включаемых файлов нажмите кнопку ОК.
Чтобы выполнить сборку исполняемого файла, выберите в строке меню команду Сборка > Собрать решение.
Запуск приложения
Запуск приложения
Убедитесь в том, что проект MathClient выбран в качестве проекта по умолчанию. Чтобы выбрать его, в обозревателе решений откройте контекстное меню проекта MathClient и выберите команду Назначить запускаемым проектом.
Чтобы запустить проект, в строке меню выберите Отладка > Запуск без отладки. Выходные данные должны выглядеть примерно так:
Создать статическую библиотеку
Создать статическую библиотеку к программе
У меня есть программа и к ней надо создать статическую библиотеку. Не совсем понимаю, как это.
Как создать статическую библиотеку с расширением .lib в MinGw?
Зачем это надо? — хочу скомпилировать библиотеку в MinGw и подключить к с++builder. Возможно ли.
Научите собирать статическую библиотеку из исходников
Собственно, не могу я этого. В "наборе" есть файлы .h, .m, .in, .c, а также CMakeLists.txt Как.
Как создать статическую и динамическую библиотеки C++
Как создать статическую и динамическую библиотеки со своими функциями и включить их в программы?
В этом учебнике вы создадите простую библиотеку классов с одним методом для обработки строк.
Когда вы завершите создание библиотеки классов, можете распространить ее как пакет NuGet или включить как компонент в состав приложения, в котором она используется.
Предварительные условия
Создание решения
Начните с создания пустого решения для размещения проекта библиотеки классов. Решение Visual Studio служит контейнером для одного или нескольких проектов. Вы будете добавлять дополнительные связанные проекты в одно решение.
Чтобы создать пустое решение, сделайте следующее:
Запустите Visual Studio.
На начальном экране выберите Создать проект.
В поле поиска на странице Создание проекта введите решение. Выберите шаблон Пустое решение и нажмите кнопку Далее.
На странице Настройка нового проекта введите ClassLibraryProjects в поле Имя решения. Затем нажмите кнопку Создать.
Создание проекта библиотеки классов
Добавьте в решение новый проект библиотеки классов .NET с именем "StringLibrary".
Щелкните решение в обозревателе решений правой кнопкой мыши и выберите Добавить > Новый проект.
На странице настройки нового проекта введите StringLibrary в поле Имя проекта, а затем нажмите Далее.
Если вы используете Visual Basic, удалите текст в поле Корневое пространство имен.
Для каждого проекта Visual Basic автоматически создает пространство имен, соответствующее имени проекта. В этом учебнике вы определите пространство имен верхнего уровня с помощью ключевого слова namespace в файле кода.
Замените код, отображаемый в окне кода, для Class1.cs или Class1.vb следующим текстом, а затем сохраните файл. Если нужный язык не отображается, измените селектор языка в верхней части страницы.
Библиотека классов UtilityLibraries.StringLibrary содержит метод StartsWithUpper , который возвращает значение Boolean, указывающее, является ли первым символом текущего экземпляра строки символ верхнего регистра. Символы верхнего регистра определяются по стандарту Юникод. Метод Char.IsUpper(Char) возвращает true , если символ является символом верхнего регистра.
Метод StartsWithUpper реализуется как метод расширения, чтобы вызывать его можно было так же, как любой член класса String. Вопросительный знак ( ? ) после string указывает, что строка может иметь значение NULL.
В строке меню выберите Сборка > Собрать решение или нажмите клавиши CTRL + SHIFT + B , чтобы убедиться, что проект компилируется без ошибок.
Добавление консольного приложения в решение
Добавьте консольное приложение, использующее библиотеку классов. В приложении пользователю будет предложено ввести строку и сообщить, начинается ли строка с символа верхнего регистра.
Добавьте к решению новое консольное приложение .NET под названием "Демонстрация".
Щелкните решение в Обозревателе решений правой кнопкой мыши и выберите Добавить > Новый проект.
Выберите шаблон Консольное приложение и нажмите Далее.
В окне кода замените весь код файла Program.cs или Program.vb следующим текстом.
Сама программа предлагает пользователю ввести строку. Она сообщает, начинается ли строка с символа верхнего регистра. Если пользователь нажимает клавишу ВВОД , не введя никакой строки, приложение завершает свою работу и окно консоли закрывается.
Добавление ссылки на проект
Изначально новый проект консольного приложения не имеет доступа к библиотеке классов. Чтобы позволить приложению вызывать методы из библиотеки классов, создайте в проекте ссылку на проект библиотеки классов.
В обозревателе решений щелкните правой кнопкой мыши узел Зависимости проекта ShowCase и выберите команду Добавить ссылку на проект.
В диалоговом окне Диспетчер ссылок выберите проект StringLibrary, а затем нажмите кнопку ОК.
Запуск приложения
В окне Обозреватель решений щелкните правой кнопкой мыши проект ShowCase и выберите команду Назначить запускаемым проектом.
Нажмите клавиши CTRL + F5 , чтобы скомпилировать и запустить программу без отладки.
Проверьте, как работает программа: вводите строки и нажимайте клавишу ВВОД . Чтобы выйти, нажмите клавишу ВВОД .
Дополнительные ресурсы
Следующие шаги
В этом руководстве вы создали библиотеку классов. В следующем руководстве вы узнаете, как выполнять модульное тестирование библиотеки классов.
Вы также можете пропустить автоматическое модульное тестирование и узнать, как можно распространить библиотеку, создав пакет NuGet:
Либо узнайте, как опубликовать консольное приложение. При публикации консольного приложения из решения, созданного в этом руководстве, библиотека классов публикуется вместе с ним в виде файла DLL.
В этом учебнике вы создадите простую библиотеку классов с одним методом для обработки строк.
Когда вы завершите создание библиотеки классов, можете распространить ее как пакет NuGet или включить как компонент в состав приложения, в котором она используется.
Предварительные условия
Создание решения
Начните с создания пустого решения для размещения проекта библиотеки классов. Решение Visual Studio служит контейнером для одного или нескольких проектов. Вы будете добавлять дополнительные связанные проекты в одно решение.
Чтобы создать пустое решение, сделайте следующее:
Запустите Visual Studio.
На начальном экране выберите Создать проект.
В поле поиска на странице Создание проекта введите решение. Выберите шаблон Пустое решение и нажмите кнопку Далее.
На странице настройки нового проекта введите ClassLibraryProjects в поле Имя проекта. Затем нажмите кнопку Создать.
Создание проекта библиотеки классов
Добавьте в решение новый проект библиотеки классов .NET с именем "StringLibrary".
Щелкните решение в обозревателе решений правой кнопкой мыши и выберите Добавить > Новый проект.
На странице настройки нового проекта введите StringLibrary в поле Имя проекта, а затем нажмите Далее.
Если вы используете Visual Basic, удалите текст в поле Корневое пространство имен.
Для каждого проекта Visual Basic автоматически создает пространство имен, соответствующее имени проекта. В этом учебнике вы определите пространство имен верхнего уровня с помощью ключевого слова namespace в файле кода.
Замените код, отображаемый в окне кода, для Class1.cs или Class1.vb следующим текстом, а затем сохраните файл. Если нужный язык не отображается, измените выбор языка в верхней части страницы.
Библиотека классов UtilityLibraries.StringLibrary содержит метод StartsWithUpper , который возвращает значение Boolean, указывающее, является ли первым символом текущего экземпляра строки символ верхнего регистра. Символы верхнего регистра определяются по стандарту Юникод. Метод Char.IsUpper(Char) возвращает true , если символ является символом верхнего регистра.
Метод StartsWithUpper реализуется как метод расширения, чтобы вызывать его можно было так же, как любой член класса String.
В строке меню выберите Сборка > Собрать решение или нажмите клавиши CTRL + SHIFT + B , чтобы убедиться, что проект компилируется без ошибок.
Добавление консольного приложения в решение
Добавьте консольное приложение, использующее библиотеку классов. В приложении пользователю будет предложено ввести строку и сообщить, начинается ли строка с символа верхнего регистра.
Добавьте к решению новое консольное приложение .NET под названием "Демонстрация".
Щелкните решение в Обозревателе решений правой кнопкой мыши и выберите Добавить > Новый проект.
Выберите шаблон Консольное приложение и нажмите Далее.
В окне кода замените весь код файла Program.cs или Program.vb следующим текстом.
Сама программа предлагает пользователю ввести строку. Она сообщает, начинается ли строка с символа верхнего регистра. Если пользователь нажимает клавишу ВВОД , не введя никакой строки, приложение завершает свою работу и окно консоли закрывается.
Добавление ссылки на проект
Изначально новый проект консольного приложения не имеет доступа к библиотеке классов. Чтобы позволить приложению вызывать методы из библиотеки классов, создайте в проекте ссылку на проект библиотеки классов.
В обозревателе решений щелкните правой кнопкой мыши узел Зависимости проекта ShowCase и выберите команду Добавить ссылку на проект.
В диалоговом окне Диспетчер ссылок выберите проект StringLibrary, а затем нажмите кнопку ОК.
Запуск приложения
В окне Обозреватель решений щелкните правой кнопкой мыши проект ShowCase и выберите команду Назначить запускаемым проектом.
Нажмите клавиши CTRL + F5 , чтобы скомпилировать и запустить программу без отладки.
Проверьте, как работает программа: вводите строки и нажимайте клавишу ВВОД . Чтобы выйти, нажмите клавишу ВВОД .
Дополнительные ресурсы
Следующие шаги
В этом руководстве вы создали библиотеку классов. В следующем руководстве вы узнаете, как выполнять модульное тестирование библиотеки классов.
Вы также можете пропустить автоматическое модульное тестирование и узнать, как можно распространить библиотеку, создав пакет NuGet:
Либо узнайте, как опубликовать консольное приложение. При публикации консольного приложения из решения, созданного в этом руководстве, библиотека классов публикуется вместе с ним в виде файла DLL.
Как создать библиотеку в c visual studio
Создание библиотек
Создание нового проекта в MS Visual Studio
Выбор типа создаваемого проекта
Созданный проект библиотеки
Подтверждения переименования класса
Теперь нужно создать проект самой DLL.
Для этого нужно:
1) Нажать в окне "Обозреватель решений" по строке Решение "Ваше_название" правой кнопкой мыши.
2) В открывшемся окне "Добавить->Создать проект"
3) Делам все так же как и при создании первого проекта. Но меняем название и выбираем "Библиотека классов"
4) Нажимаем ОК
5) В созданном проекте переименуйте файл Class1.cs в ваше название у меня это Vector.cs
Это для библиотеки классов. (второго проекта)
Жмем правой кнопкой по проекту библиотеки (у меня это Vector) после чего по кнопке "Собрать"
Теперь как это использовать:
В первом проекте "Правой кнопкой по вкладке Ссылки->Добавить ссылку" и выбираем библиотеку (она в папке проекта библиотеки-bin-Debug)
Код для файла Program.cs (главный класс консольного приложения)
После запуска программы (кнопка Пуск на панели инструментов) все как и заказывали.
Читайте также: