Да, вы можете это сделать, почти так же, как у вас есть.
C:\Code\bgi\obj>lib /out:libbgi.lib *.obj
LIB (lib.exe) используется для создания статических библиотек. LINK (link.exe / DLL) используется для создания динамических библиотек ( он создает .dll и библиотеку импорта .lib).
C:\Code\bgi\obj>link /DLL /out:bgi.dll *.obj [additional libs]
При использовании команды link /DLL
потребуются дополнительные стандартные библиотеки времени выполнения Win32 и C ++ (например, MSVCRT.lib, User32.lib и т. Д. И библиотеки MFC).
В таком случае; кажется, это правильные аргументы компоновщика;
C:\Code\bgi\obj>link /DLL /out:bgi.dll *.obj MSVCRTD.lib User32.lib Gdi32.lib ole32.lib Comdlg32.lib OleAut32.lib
Примечание: построенные объектные файлы являются отладочными версиями, поэтому MSVCRTD.lib (обратите внимание на букву D) - это тот файл, который можно использовать здесь. С помощью приведенных выше команд я смог успешно связать как .dll, так и статический .lib.
Дополнительные пути включения и библиотеки;
При распространении этих выходных данных для других сборок в целевую сборку может потребоваться включение дополнительных заголовков и путей к библиотекам. Чтобы добавить дополнительные местоположения к путям поиска включения и библиотеки, можно добавить переменные среды (INCLUDE
и LIB
) (для каждого пользователя или системы), но они также могут быть указаны в командной строке с помощью _ 7_ и _ 8_ следующим образом;
cl /IC:\Code\include [additional options] main.cpp
link /LIBPATH:C:\Code\lib [additional options] xyz.lib
Методические рекомендации;
- Запустите командную строку «Visual Studio», учитывая 2008 г., в меню «Пуск» должна быть ссылка «Командная строка Visual Studio 2008». Этот командный файл настроит правильную среду для сборки C ++. Убедитесь, что вы выбрали правильный набор инструментов для целей x86 или x64.
- Перейдите в каталог, содержащий объектные файлы.
- Выполните имеющиеся у вас команды (как указано выше).
Ваша ошибка LNK1104
Я подозреваю, что ваша ошибка, LNK1104, скорее всего, связана с тем, что ваш пользователь не имеет достаточных прав для записи файлов в каталоге «Program Files». В противном случае это может быть ошибка с использованием неправильной цепочки инструментов для вашей цели (x86 против x64).
Обычно лучше делать это в собственном каталоге; например: «C: \ Code \ bgi».
person
Niall
schedule
05.08.2015