Нужно ли использовать как pthreadVC2.lib, так и pthreadVC2.dll в visual studio 2013?
Я загружаю pthread-w32-2-9-1-release.zip, распаковываю его и использую Prebuild/include lib и dll с VisualStudio2013.
Я создал пустой проект VC++ "helloc" с помощью main.c, а затем написал простой пример с функциями pthread_create pthread_join.
Это моя конфигурация:
Свойства->C/C++-> Общие-> Дополнительные каталоги включения, добавьте "F:\pthread_win32\include"
Свойства-> Линкер-> Общие-> Дополнительные каталоги библиотеки, добавьте "F:\pthread_win32\lib\x86"
Свойства-> Линкер-> Ввод-> Дополнительные зависимости, добавьте "pthreadVC2.lib"
И он успешно собран, но когда я нажимаю "Локальный отладчик Windows", консоль перестает работать с ошибкой helloc.exe, поскольку не удается найти файл pthreadVC2.dll.
Затем я скопировал pthreadVC2.dll в helloc/Debug/, тот же каталог, что и helloc.exe, и наконец он работает.
Но я не знаю, почему pthreadVC2.lib и pthreadVC2.dll требуются helloc.exe. Обязательно ли использование lib и dll в VisualStudio?
Если только одного из них (pthreadVC2.lib pthreadVC2.dll) достаточно для поддержки helloc.exe, как я могу указать, какой из них (dll или lib) я хочу использовать в VisualStudio с helloc.exe?
И я не хочу помещать все библиотеки pthread и dll в "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC", я хочу знать, как настроить вручную.
1 ответ
AFAICT, встроенная библиотека - это просто библиотека импорта для DLL. (Позволяет вам ссылаться на DLL, следовательно, требуется) Если вы хотите связать статически, вам придется пересобрать библиотеку самостоятельно. Смотрите файл README для получения дополнительной информации.