日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

jextract的使用

發(fā)布時間:2023/12/24 windows 29 coder
生活随笔 收集整理的這篇文章主要介紹了 jextract的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

寫這個博客的目的:新人去看jextract的官網是看不懂的,就算看懂了也不會使用,一頭霧水,我會從0開始教如何使用,如何搭配java去調用c函數。
首先我們得了解jextract是什么,官網的解釋是一種從本機庫頭文件機械地生成 Java 綁定的工具。該工具利用 clang C API 來解析與給定本機庫關聯的標頭,生成的 Java 綁定基于 Foreign Function & Memory API。該工具最初是在 Project Panama 的背景下開發(fā)的(然后在 Project Panama Early Access 二進制文件中提供)。
官網鏈接:https://github.com/openjdk/jextract
為什么會考慮到使用jextract呢?因為jni的那個太老而且操作太繁瑣了
接下來開始講解如何使用jextract

jextract-21的文件的下載

jextract-21的windows版本的文件下載鏈接:https://download.java.net/java/early_access/jextract/1/openjdk-21-jextract+1-2_windows-x64_bin.tar.gz
下載并解壓:

然后配置一下環(huán)境變量:

jextract的使用

先寫個.h的頭文件

代碼:

//point.h
#include<stdio.h>
void sayHello();

然后再寫個.c的實現源文件

#include "point.h"
void sayHello(){
   printf("hello world");
}

接下來就是編譯鏈接成lib

gcc -c point.c
ar -cr pointlib.lib point.o

然后我們看一下jextract的使用說明書

可以看出--source是生成java資源文件的
而-t是生成到某個目錄的名稱
比如說:

jextract --source -t org.jextract point.h

就是生成java源代碼并存放到本地目錄的org.jextract目錄下面
使用jextract

jextract --source -t org.jextract point.h

展示效果圖:

然后你運行是肯定必報錯的,因為沒有鏈接到lib里面
真正使用jextract應該這樣使用

jextract --source -t 生成的包目錄 -l鏈接lib庫 文件.h

這樣就鏈接到了。
不過我的建議是官網有一個這樣的例子:
https://github.com/openjdk/jextract/tree/master/samples/helloworld
兄弟們可以下載起來,然后在linux環(huán)境下跑一跑。
好,完結

總結

以上是生活随笔為你收集整理的jextract的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。