我正在尝试将FreeType与OpenJDK9的Mac版本捆绑在一起,但在构建完成后遇到libfreetype引用时遇到问题。我正在使用我的应用程序打包JDK,并且不希望最终用户必须安装FreeType才能使应用程序正常工作(我们使用的JDK7版本做了我想要的,但我不是那个建立那么不知道他们做了什么才能让它发挥作用。)
下载FreeType 2.5.3后(我也使用了2.8.1但我不认为使用哪个版本作为OpenJDK表示2.3以上版本应该适用于Java 9),我正在运行(只是用变量填充路径,因为它们并不重要)
f.write('{}\n'.format(''.join(line)))
然后构建我的JDK,我正在运行
./configure prefix=$DOWNLOAD_PATH/freetype-2.5.3
make
make install
这构建JDK就好了,并将libfreetype.dylib.6捆绑到jdk / lib目录中,但是当我打开libfontmanager.dylib时,我可以看到它指向bash ./configure --with-freetype=$DOWNLOAD_PATH/freetype-2.5.3 --with-boot-jdk=$PATH_TO_JDK1.8/Contents/Home --disable-warnings-as-errors
make images
而不是{{1 }}
因为它没有使用相对路径(即使它成功捆绑了文件),当我运行应用程序时,它正在寻找存在的$ DOWNLOAD_PATH来查找dylib文件(它不会因为那个而没有位置只在我用来构建JDK的Mac上,所以我得到一个如下错误:
$DOWNLOAD_PATH/freetype-2.5.3/lib/libfreetype.6.dylib
如何让我的构建在这里使用@rpath/libfreetype.6.dylib
而不是从中引入FreeType的绝对路径?它成功捆绑了文件(libfreetype.6.dylib在jre / lib目录下),只是没有在libfontmanager.dylib中指向它。
答案 0 :(得分:1)
对于任何有关人员来说,这个问题的JDK错误已于12月关闭,它确认了该错误,并通过使用install_name_tool手动修改dylib文件以在jdk被使用后使用@rpath为其提供解决方法创建
以下是错误的链接:https://bugs.openjdk.java.net/browse/JDK-8139653?jql=text%20~%20%22freetype%22
答案 1 :(得分:0)
我发现此解决方案最容易遵循:https://github.com/AdoptOpenJDK/openjdk-build/issues/489#issuecomment-446181769
cd <JDK path>/Contents/Home/jre/lib
sudo ln -s libfreetype.dylib.6 libfreetype.6.dylib