#java #netbeans #cygwin #jna
#java #netbeans #cygwin #jna
Вопрос:
Пытаюсь создать небольшую программу на JNA.
После генерации файла заголовка я теперь пытаюсь собрать и создать DLL-файл. Но возникает эта проблема…
Я использую Netbeans IDE с Cygwin, другие проекты на C / C работают.
gcc: Флаг -mno-cygwin был удален; используйте кросс-компилятор, ориентированный на mingw.
сделайте[2]: покидаем каталог `/cygdrive/c/Users/User/Documents/NetBeansProjects/HelloWorldNative’
сделайте[1]: покидаем каталог `/cygdrive/c/Users/User/Documents/NetBeansProjects/HelloWorldNative’
make[2]: * [build / Debug /Cygwin-Windows/_ext/1653581963/HelloWorldNative.o] Ошибка 1
ошибка make[1]: * [.build-conf] 2
make: * [.build-impl] Ошибка 2
СБОЙ СБОРКИ (значение выхода 2, общее время: 1 сек.)
Мне бы очень хотелось, чтобы Netbeans работал здесь, поскольку я новичок в JNA и хочу иметь возможность быстро вносить изменения и экспериментировать. Поэтому не желательно создавать его с консоли каждые 5 секунд: S
Комментарии:
1. Не тот ответ, который вы хотите, но я создаю свои Java-программы в NetBeans или Eclipse и выполняю кодирование на C с помощью Notepad .
2. Нужна более описательная ошибка, потому что это не дает никаких указаний на то, почему произошел сбой. Возможно, вы также можете вставить свой собственный код.
Ответ №1:
В последние дни я работал над внедрением решения Java JNA Cygwin. После многих попыток и тупиков я, наконец, нахожу разумное решение. Моими вызовами JNA являются getpwnam, chown и perror, все три реализованы в Cygwin1.dll . Вы можете просмотреть мое полное решение, применимое к моему контексту, наhttp://vouters.dyndns.org/tima/Linux-OpenVMS-Java-Implementing_chown_in_Java.html
Я просто надеюсь, что мой стиль кодирования и документации достаточно понятен для вас.
Ответ №2:
Наверное, я немного заблудился. Весь смысл JNA в том, что он освобождает вас от необходимости писать или компилировать машинный код. Вам необходимо предоставить более подробную информацию о том, что делает ваш машинный код. Вы пытаетесь скомпилировать свою собственную dll, к которой затем планируете получить доступ с помощью JNA? Если это так, у вас, вероятно, неправильно настроен Netbeans для сборки dll. Я предполагаю, что он пытается создать исполняемый файл, но не может найти метод ‘main’.
Ответ №3:
В коде Java / JNA chown, который я предоставляю, вызываемая мной DLL является Cygwin1.dll поставляется библиотека dll от Cygwin, которая содержит три последующих вызова (getpwnam, chown и perror).
Зачем мне нужно Cygwin1.dll ? Потому что это единственная DLL в Windows, содержащая эти точки входа в Unix. Моей целью по-прежнему остается написать как можно больше переносимого кода. MinGW не предлагал эти вызовы, мне пришлось отказаться от этого.
Microsoft, несомненно, может предложить что-то аналогичное этим вызовам Unix. Однако это, несомненно, заставило бы меня собрать специфичный для Windows код. Я действительно не забочусь об этом.
В надежде, что это прояснит