centos 无法生成JSVC

v1uwarro  于 2023-01-05  发布在  其他
关注(0)|答案(1)|浏览(109)

我无法从tarball在Centos 7上本地构建JSVC

http://archive.apache.org/dist/commons/daemon/source/commons-daemon-1.0.15-src.tar.gz
tar -zxf commons-daemon-1.0.15-src.tar.gz

我在/usr/java/jdk1.8.0_351-amd64位置安装了JRE:
我按照指示做:

cd /opt/install
wget http://archive.apache.org/dist/commons/daemon/source/commons-daemon-1.0.15-src.tar.gz
tar -zxf commons-daemon-1.0.15-src.tar.gz
cd ./commons-daemon-1.0.15-src/src/native/unix
./configure && make

尽管我将$JAVA_HOME精确地指向/usr/java/jdk1.8.0_351-amd64,但是./configure脚本仍然需要一些东西来替换缺少的$JAVA_HOME,例如sudo ./configure --with-java=/usr/java/jdk1.8.0_351-amd64
但是即使使用这个参数也不能正确定义所需的文件夹。唯一允许我构建的选项是

sudo ./configure --with-java=/usr/java/jdk1.8.0_351-amd64/include --with-os-type=linux

因此,它需要/include部分在这里,以构建完整的正确路径。
但是后者会在下一步,当我执行make时,引起问题,它把多余的/include放到gcc的一个参数路径中,我得到如下错误:

sudo make -I /usr/java/jdk1.8.0_351-amd64(cd native; make  all)
make[1]: Entering directory `/opt/install/commons-daemon-1.0.15-src/src/native/unix/native'
gcc -g -O2 -DOS_LINUX -DDSO_DLFCN -DCPU=\"amd64\" -Wall -Wstrict-prototypes   -I/usr/java/jdk1.8.0_351-amd64/include/include -I/usr/java/jdk1.8.0_351-amd64/include/include/linux -c java.c -o java.o
java.c:24:17: fatal error: jni.h: No such file or directory

那么,我该如何解决这个问题呢?没有/包含,第一部分不起作用,第二部分也不起作用。

falq053o

falq053o1#

我不得不做一个肮脏的黑客一样,手动更改一个文件正在生产的./configure阶段和make阶段之前。
在根文件夹中,我们有Makefile文件
此处更换

INCLUDES =  -I/usr/java/jdk1.8.0_351-amd64/include/include -I/usr/java/jdk1.8.0_351-amd64/include/linux

INCLUDES =  -I/usr/java/jdk1.8.0_351-amd64/include/include -I/usr/java/jdk1.8.0_351-amd64/include/include/linux

并且编译将成功。
我不知道根据JSVC指令设计应该做些什么。

相关问题