Как использовать статическую библиотеку в решении с типом конфигурации, установленным как динамически подключаемая библиC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Как использовать статическую библиотеку в решении с типом конфигурации, установленным как динамически подключаемая библи

Сообщение Anonymous »

Я создал два решения с помощью Visual Studio. Я компилирую первый как статическую библиотеку. Я хочу использовать эту библиотеку во втором решении, которое является плагином для Maya.
Для второго решения я начал с файла шаблона hello world, который предоставляет Autodesk, и не изменил ничего или ничего. вообще, кроме добавления пути к моей библиотеке и ее включения. Я продолжал получать эти ошибки:

Код: Выделить всё

Severity    Code    Description Project File    Line    Suppression State
Error   LNK1120 2 unresolved externals  ddRbf   C:\Users\daniele\Documents\workspace\ddPlugins\ddRbf\x64\Release\ddRbf.mll  1

Severity    Code    Description Project File    Line    Suppression State
Error   LNK2019 unresolved external symbol "public: void __cdecl ddMatrix::print(void)const " (?print@ddMatrix@@QEBAXXZ) referenced in function "public: virtual class Autodesk::Maya::OpenMaya20180000::MStatus __cdecl ddRbf::compute(class Autodesk::Maya::OpenMaya20180000::MPlug const &,class Autodesk::Maya::OpenMaya20180000::MDataBlock &)" (?compute@ddRbf@@UEAA?AVMStatus@OpenMaya20180000@Maya@Autodesk@@AEBVMPlug@345@AEAVMDataBlock@345@@Z)   ddRbf   C:\Users\daniele\Documents\workspace\ddPlugins\ddRbf\ddRbf.obj  1

Severity    Code    Description Project File    Line    Suppression State
Error   LNK2019 unresolved external symbol "public: __cdecl ddMatrix::ddMatrix(class std::vector)" (??0ddMatrix@@QEAA@V?$vector@V?$vector@NV?$allocator@N@std@@@std@@V?$allocator@V?$vector@NV?$allocator@N@std@@@std@@@2@@std@@@Z) referenced in function "public: virtual class Autodesk::Maya::OpenMaya20180000::MStatus __cdecl ddRbf::compute(class Autodesk::Maya::OpenMaya20180000::MPlug const &,class Autodesk::Maya::OpenMaya20180000::MDataBlock &)" (?compute@ddRbf@@UEAA?AVMStatus@OpenMaya20180000@Maya@Autodesk@@AEBVMPlug@345@AEAVMDataBlock@345@@Z)   ddRbf   C:\Users\daniele\Documents\workspace\ddPlugins\ddRbf\ddRbf.obj  1
После множества исследований и тестов я обнаружил, что если я изменю свойства проекта > общие > настройки проекта по умолчанию > конфигурацию с динамически подключаемых библиотек на статические, он будет скомпилирован, хотя в тот момент, когда Я пытаюсь загрузить скомпилированный файл .mll в Maya и получаю следующую ошибку:

Код: Выделить всё

// Error: file: C:/Program Files/Autodesk/Maya2018/scripts/others/pluginWin.mel line 290: Unable to dynamically load : C:/Users/daniele/Documents/maya/plug-ins/ddRbf.mll

// Error: file: C:/Program Files/Autodesk/Maya2018/scripts/others/pluginWin.mel line 290:  (ddRbf) //
Поэтому я думаю, что решение состоит в том, чтобы вместо этого скомпилировать первый файл .sln как динамическую библиотеку, но мне было интересно, есть ли способ просто использовать статическую библиотеку без необходимости делать этот шаг.

Подробнее здесь: https://stackoverflow.com/questions/561 ... -dynamic-l
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»