Я пытаюсь скомпилировать проект JPen , используя maven.Проект, похоже, был заброшен, и текущая база кода не компилируется на моей машине при запуске стандартной сборки.Предполагается, что проект должен создать оболочку из драйверов, которые могут читать цифровые планшеты для Win, MacOS и Linux.
После некоторой настройки файла POM для обновления некоторых устаревших библиотек я попытался выполнить сборку, но нажалстена, когда он пытается связать код C.Он использует мой Qt mingw32 для связи и, похоже, не может найти библиотеку Xi, которая имеет код X11:
--- nar-maven-plugin:3.2.3:nar-compile (default-nar-compile) @ jpen ---
Compiling 3 native files
3 total files to be compiled.
3 total files to be compiled.
Found 4 processors available
Found 4 processors available
Limited used processors to 3
Limited used processors to 3
Starting Core 0 with 1 source files...
Starting Core 0 with 1 source files...
Starting Core 1 with 1 source files...
Starting Core 1 with 1 source files...
Starting Core 2 with 1 source files...
Starting Core 2 with 1 source files...
Linking...
Linking...
Starting link {5.3.0 -shared -LD:\dev\sourceforge.com\jpen-code\src\main\c\windows\lib -Bdynamic -lWINTAB32 -Bdynamic -lXi -shared-libgcc}
Starting link {5.3.0 -shared -LD:\dev\sourceforge.com\jpen-code\src\main\c\windows\lib -Bdynamic -lWINTAB32 -Bdynamic -lXi -shared-libgcc}
C:/Qt/Tools/mingw530_32/bin/../lib/gcc/i686-w64-mingw32/5.3.0/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -lXi
collect2.exe: error: ld returned 1 exit status
------------------------------------------------------------------------
BUILD FAILURE
------------------------------------------------------------------------
Total time: 23.056s
Finished at: Tue Oct 02 13:40:31 EDT 2018
Final Memory: 19M/151M
------------------------------------------------------------------------
Failed to execute goal com.github.maven-nar:nar-maven-plugin:3.2.3:nar-compile (default-nar-compile) on project jpen: NAR: Compile failed: g++ failed with return code 1 -> [Help 1]
Соответствующая часть файла pom выглядит так:
<profile>
<id>amd64</id>
<activation>
<os>
<arch>amd64</arch>
</os>
</activation>
<build>
<plugins>
<plugin>
<!--
<groupId>org.freehep</groupId>
<artifactId>freehep-nar-plugin</artifactId>
<version>2.0-alpha-10</version>
-->
<groupId>com.github.maven-nar</groupId>
<artifactId>nar-maven-plugin</artifactId>
<version>3.2.3</version>
<extensions>true</extensions>
<configuration>
<output>jpen-${module.version}-${jpen.provider.xinput.nativeVersion}-x86_64</output>
<linker>
<name>g++</name>
<sysLibs>
<sysLib>
<name>Xi</name>
<type>shared</type>
</sysLib>
</sysLibs>
</linker>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>i386-on-amd64</id>
<activation>
<file>
<exists>/usr/include/gnu/stubs-32.h</exists>
</file>
</activation>
<build>
<plugins>
<plugin>
<!--
Also build i386 lib under amd64
-->
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>process-classes</phase>
<configuration>
<tasks>
<mkdir dir="target/nar/lib/i386-Linux-g++/jni/"/>
<exec executable="gcc" dir="target/nar/lib/i386-Linux-g++/jni/">
<arg value="-m32"/>
<arg value="-fpic"/>
<arg value="-shared"/>
<arg value="-o"/>
<arg value="libjpen-${module.version}-${jpen.provider.xinput.nativeVersion}.so"/>
<arg value="-LXi"/>
<arg value="../../../../../src/main/c/linux/Bus.c"/>
<arg value="../../../../../src/main/c/linux/Device.c"/>
<arg value="../../../../../src/main/c/linux/jpen_cFramework_TestType.c"/>
<arg value="../../../../../src/main/c/linux/jpen_provider_xinput_XiBus.c"/>
<arg value="../../../../../src/main/c/linux/jpen_provider_xinput_XiDevice.c"/>
<arg value="../../../../../src/main/c/linux/macros.c"/>
<arg value="../../../../../src/main/c/linux/TestType.c"/>
</exec>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
Кто-нибудь знает, как я мог бы создать этот код?