У меня есть общая библиотека 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
флагов компоновщика соответственно.Я ищу что-то похожее на это, но ничего не нашел.