Получение компилятором (и библиотекой компоновщика) путей поиска для кода на C с помощью переносимого JNI - PullRequest
1 голос
/ 18 января 2010

У меня есть общая библиотека C, libfoo.so, для которой я создаю интерфейс JNI.Чтобы скомпилировать интерфейсную библиотеку JNI, libfoojni.so, необходимо указать пути поиска компилятора.Например, в Linux (с использованием GCC) требуются следующие флаги компилятора: -I${JAVA_HOME}/include -I${JAVA_HOME}/include/linux.

К сожалению, последний путь включает платформу.В SunOS последний путь - -I${JAVA_HOME}/include/solaris, в AIX - -I${JAVA_HOME}/include/aix, а в HP-UX - -I${JAVA_HOME}/include/hp-ux.Это неприятность в файлах сборки.

Есть ли способ получить пути включения включительно?Например, в perl вы можете использовать perl -MExtUtils::Embed -e ccopts для получения флагов компилятора и -e ldopts флагов компоновщика соответственно.Я ищу что-то похожее на это, но ничего не нашел.

1 Ответ

0 голосов
/ 18 января 2010

Это вообще не вопрос Java или JNI.

Обычный способ решить эту проблему - использовать что-то вроде цепочки инструментов autoconf / automake, которая создает файлы Make и сценарии «configure», которые работают на широком спектре платформ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...