Я повторно отправляю сообщение о проблеме из github (https://github.com/libffi/libffi/issues/538), которая возникла у меня на прошлой неделе.
В настоящее время у меня возникла проблема с получением некоторых библиотек JNA, собранных как jar deployables используя скрипт сборки Ant (FYI: https://github.com/thepaul/libjna-java). для того, чтобы использовать API из этой библиотеки для моего другого проекта. (Единственная цель, с которой я столкнулся с трудностями построения - это возможность использовать его API. Из-за отсутствия документации и отсутствия предоставленного артефакта сборки я должен был сделать это сам. Импортировать весь репозиторий libjna как проект в мой другой проект может быть другой подход, но я не думаю, что это уместно. Тем не менее, если есть какие-либо более эффективные способы использования библиотек в libjna, дайте мне знать!)
Так вот что Я пытался встроить его в развертываемый файл jar:
У меня уже загружен исходный проект.
Попытка скомпилировать с помощью Ant (я скачал последнюю версию) на cygwin. Не удалось, потому что это требует libffi. Поэтому я скачал исходный код libffi отсюда (https://github.com/libffi/libffi).
Попытался снова скомпилировать, используя Ant. Ошибка, так как не удалось найти "/ c / Program Files (x86) / Microsoft Visual Studio 9.0 / vc / bin / cl", как указано в config.log. Поэтому я проверил cc. sh и обнаружил, что он ссылается к более старой версии Microsoft Visual Studio. У меня есть существующая установка Visual Studio Express. Поэтому я изменил путь на "C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ WDExpress \ VC \ Tools \ MSVC \ 14.16.27023 \ bin \ Hostx86 \ x64" в cc. sh file.
Попытка снова скомпилировать с помощью Ant. Казалось, исправление сработало, но не с другой ошибкой, потому что не удалось найти "mspdbcore.dll". Я нашел этот файл в ".. \ x86", поэтому копирую файл в .. \ x64
Попытался снова скомпилировать с помощью Ant. Ошибка с похожей ошибкой, но другим файлом, так как не удалось найти «mspdb140.dll». Я нашел этот файл в ".. \ x86", поэтому скопировал
Попытался снова скомпилировать. Ошибка с другой ошибкой, потому что теперь она говорит
"LINK : fatal error LNK1104: cannot open file 'LIBCMT.lib'"
, хотя я могу подтвердить, что этот файл определенно находится в "C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ WDExpress \ VC \ Tools \ MSVC \ 14.16.27023 \ lib \ x64 "
Чтобы устранить эту ошибку, я попытался (напрасно):
- добавить пути к Microsoft Visual Studio в PATH
- C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ WDExpress \ VC \ Tools \ MSVC \ 14.16.27023 \ bin \ Hostx86 \ x64
- C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ WDExpress \ VC \ Tools \ MSVC \ 14.16.27023 \ lib \ x64
- C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ WDExpress \ Common7 \ IDE
- Загруженные MS Visual Studio 2019, как Community, так и Professional (по какой-то причине не смогли найти эти dll)
- Загружали одновременно mspdb140.dll и mspdbcore.dll, config .log сообщает, что не может найти эти файлы
Примечание. Однако я также провел некоторые исследования в Интернете:
- I не используйте Visual Studio IDE, так как я только пытаюсь собрать его с помощью Ant, поэтому этот пост не очень помог ( ССЫЛКА: фатальная ошибка LNK 1104: не могу открыть файл 'LIBCMT.lib' )
- Я тоже не совсем понимаю ответ на этот пост (https://social.msdn.microsoft.com/Forums/en-US/cbedc1ba-c50b-499e-aa2e-12b0ce6a40ba/lnk1104-cannot-open-file-libcmtlib?forum=vclanguage)
Так вот, где я застрял.
См. Последний журнал конфигурации прилагается. config.log
Также прилагается журнал сборки Ant. ant_compile_error.txt
Любой, кто может помочь, будет высоко ценится!
Приветствия Дейл