如何使用 Maven-NAR 插件生成 CPP 二进制文件
how to generate cpp binaries using maven-nar plugin
我需要帮助来编译使用 maven-nar 插件编译 c++ 代码。我尝试通读文档,但无法使代码正常工作。任何帮助都非常感谢
http://maven.apache.org/xsd/maven-4.0.0.xsd">4.0.0
<groupId>com.github.maven-nar</groupId>
<artifactId>maven-nar-poc</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>nar</packaging>
<dependencies>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>com.github.maven-nar</groupId>
<artifactId>nar-maven-plugin</artifactId>
<version>3.2.3</version>
<extensions>true</extensions>
<configuration>
<libraries>
<library>
<type>jni</type>
<narSystemPackage>com.github.maven-nar</narSystemPackage>
</library>
</libraries>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.10</version>
<executions>
<execution>
<id>add-source</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>${project.build.directory}/nar/nar-generated/</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>mac</id>
<activation>
<os>
<family>mac</family>
</os>
</activation>
<build>
<plugins>
<plugin>
<groupId>com.github.maven-nar</groupId>
<artifactId>nar-maven-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<skip>false</skip>
<cpp>
<debug>true</debug>
<includePaths>
<includePath>${project.basedir}/src/main/cpp</includePath>
</includePaths>
<options>
<option>-DMAC -DMAC_OSX -DMAC_CARBON -D__CF_USE_FRAMEWORK_INCLUDES__ -DLARGE64_FILES
</option>
</options>
</cpp>
<libraries>
<library>
<type>executable</type>
<!-- <run>true</run> -->
<subSystem>gui</subSystem>
</library>
</libraries>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>windows</id>
<activation>
<os>
<family>windows</family>
</os>
</activation>
<build>
<plugins>
<plugin>
<groupId>com.github.maven-nar</groupId>
<artifactId>nar-maven-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<skip>false</skip>
<cpp>
<debug>true</debug>
<includePaths>
<includePath>${project.basedir}/src/main/cpp</includePath>
</includePaths>
<options>
<option>-DWINDOWS -D__CF_USE_FRAMEWORK_INCLUDES__ -DLARGE64_FILES
</option>
</options>
</cpp>
<libraries>
<library>
<type>executable</type>
<!-- <run>true</run> -->
<subSystem>gui</subSystem>
</library>
</libraries>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
上面的pom.xml不会引发任何问题,但它没有为Windows创建任何二进制文件,而且我无法理解我可以为WINDOWS使用哪些选项。
不熟悉Mac可执行文件的问题
这两个配置将连接在一起,如果您的目标是可执行文件,您可能不需要 jni 库部分。
<libraries>
<library>
<type>jni</type>
<narSystemPackage>com.github.maven-nar</narSystemPackage>
</library>
</libraries>
<libraries>
<library>
<type>executable</type>
<!-- <run>true</run> -->
<subSystem>gui</subSystem>
</library>
</libraries>
此部分可能有效
- 在 1 中有多个选项可能是一个问题 - 引用空格以使这个参数而不是 3 ...
选项中的换行符可能是一个问题...
<options> <option>-DWINDOWS -D__CF_USE_FRAMEWORK_INCLUDES__ -DLARGE64_FILES </option> </options> <options> <option>-DWINDOWS</option> <option>-D__CF_USE_FRAMEWORK_INCLUDES__</option> <option>-DLARGE64_FILES</option> </options>
但通常会这样做
<defines>
<define>WINDOWS</define>
<define>__CF_USE_FRAMEWORK_INCLUDES__</define>
<define>LARGE64_FILES</define>
</defines>
相关文章:
- .cpp和.h文件中的模板专用化声明
- 正在读取二进制文件(is_open)
- cpp二进制搜索问题,计算给定数组中输入元素的出现次数
- 在C++中将类(带有Vector成员)保存为二进制文件
- 如何从二进制文件中读取字符串
- 有没有办法简单地从 GPU 调用多个 cpp 输出文件?
- 保存/加载大量短数组到二进制文件
- 从二进制文件中读取整数数组
- Android 在编译二进制文件时重建静态库
- 在 C++ 中将双精度变量写入二进制文件
- clang 的 libFuzzer 可以在同一二进制文件中测试超过 1 个 API 吗?
- C++:实际上不是从二进制文件中读取
- 如何从二进制文件中的给定符号中获取调用程序图
- 如何使用 Maven-NAR 插件生成 CPP 二进制文件
- 为什么.cpp被归类为二进制文件
- 用于在二进制文件上写入函数的 cpp 指针
- CPP快速读取双倍的小二进制文件
- 如何在cpp中创建新的二进制文件
- cpp-netlib的二进制文件
- 如何将cpp源代码编译为完整的静态二进制文件,除了:libc、libpthread、libdl、libstdc++和li