Я пытаюсь добавить поддержку PNG в мое приложение, и поэтому хочу включить libpng. Я знаю, что ему нужен zlib, и поэтому я тоже скачал это. Я зашел в папку png/projects/vstudio, и я открыл решение. Я скомпилировал его, и все прошло отлично. Я добавил некоторые заголовки из него в свое приложение, и я скопировал файлы lib. Моя программа - это dll, написанная на C++, которая позже используется с C#. Когда я запускаю его на C#, он жалуется на то, что не найдет мою dll (жестко, если я удалю часть png, она отлично работает). Раньше у меня была эта проблема, и обычно это означает, что зависимость dll неверна.
Теперь ... libpng скомпилировал и некоторые .lib-файлы, и некоторые DLL-файлы. Файлы dll больше. Мое единственное предположение, что ему нужны файлы dll, но я видел, что люди могут ссылаться на libpng без dll.
Итак, мои вопросы: как я могу скомпилировать libpng (и zlib для этого экземпляра) только в статических библиотеках и как включить их в свои проекты? Я искал в Интернете, и я не мог найти ничего полезного.Статическая ссылка libpng с visual studio 2010
ответ
Чтобы сделать все ваши библиотеки статичными, вам придется перекомпилировать все «с нуля» как статические библиотеки.
Это просто означает, что вы должны создать набор проектов для каждой библиотеки у вас есть в вашей последовательности и установить тип вывода в статической библиотеки.
После этого вы должны устранить зависимости библиотек между самими библиотеками (это означает, что вы должны связать вывод некоторых проектов с другими проектами, например , если ваша библиотека «libpng» использует «libzip», это означает, что вы должны сначала скомпилировать «libzip» и связать этот вывод (статическая библиотека) в свой проект «Libpng».
в самом конце вам будет иметь большой набор статических библиотек скомпилированные для вашей платформы,, которые вы можете использовать в своих проектах .
Также следует упомянуть, что попробуйте подобрать Google более тщательно. Я уверен, что у кого-то это было сделано, и вам, вероятно, потребуется загрузить пакет .lib-файлов для вашей платформы (я знаю, что очень часто набор «dev» содержит только библиотеку импорта в паре с соответствующей .dll файл, но есть много энтузиастов, как вы :)
Действительно перекомпилировать этот материал не так сложно - создать проект, добавить все файлы. И больше никаких проблем с разными версиями во время выполнения или что-то в этом роде. – sharptooth
Ну, попробуйте полностью построить «gtkmm' путем« создания проекта и добавления файлов »;) * Иногда все эти внутренние зависимости могут быть настоящей болью в заднице. * –
Возможно, но мы строим zlib и SQLite без каких-либо проблем. – sharptooth