簡體   English   中英

是否可以在Linux下構建JNI .dll?

[英]Is it possible to build JNI .dll under Linux?

我正在使用nar-maven-plugin 3.0.0我的pom類似於以下內容:

<packaging>nar</packaging>

<build>
    <plugins>
        <plugin>
            <groupId>com.github.maven-nar</groupId>
            <artifactId>nar-maven-plugin</artifactId>
            <version>3.0.0</version>
            <extensions>true</extensions>
            <configuration>
                <libraries>
                    <library>
                        <type>jni</type>
                    </library>
                </libraries>
            </configuration>
        </plugin>
    </plugins>
</build>

它實際上有效。 在我的Linux下,它會自動找到gcc並使用它來構建所有內容並將其打包到nar中。 但是,這是.so文件。

我的問題是:是否可以對它進行某種配置,以使其在Linux nar中以.dll緊隨nar之后以.so進行創建? 通常來說,要生成JNI nars,還是要針對不同的體系結構?

如果可能的話,請提供一些配置代碼段,鏈接或任何可以給我一些提示的東西。

  1. 將Windows JDK復制到linux上。 在其他方面,您將不需要標題和隱含內容。 如果您看一下,將會看到有兩個JNI頭文件; 一個是基於平台的 並且,當然,您需要一個臨時鏈接來鏈接您的DLL,以便它可以連接到JVM。
  2. 獲取https://fedoraproject.org/wiki/MinGW?rd=SIGs/MinGW ,它是一個交叉編譯器環境。
  3. 向NAR插件講解(2)。 這可能需要閱讀NAR插件的源代碼。
  4. 哀悼您仍然需要Windows框來測試結果

那么您確定要執行此操作嗎? 我非常懷疑您會發現這是一種常見的,受支持的實踐,因為我們大多數人都想測試我們構建的東西。 由於您需要實際的Windows進行測試,因此不妨在此進行構建。

是的,但是對於您希望使用的每個平台,都需要一個交叉編譯器。 Jar的構建過程還需要交叉編譯器注意。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM