我正在尝试使用native-mvn-plugin通过maven构建一个cpp lib。但是,在链接部分,我遇到一个错误,说“命令行太长”
至于配置,我有这个:
<envFactoryName>org.codehaus.mojo.natives.msvc.MSVC2008x86EnvFactory</envFactoryName>
<compilerProvider>msvc</compilerProvider>
<compilerStartOptions>
<compilerStartOption> /GL /EHsc </compilerStartOption>
</compilerStartOptions>
对于linkerStartOptions,我有这个:
<linkerStartOptions>
<linkerStartOption>-g -Fo -lstdc</linkerStartOption>
</linkerStartOptions>
如果有人可以帮助我,我会很高兴。
答案 0 :(得分:1)
我真的不鼓励使用maven本机插件,我在配置它时遇到了很多麻烦,而且我不知道它是否被维护,因为主页上说它最后发布于2011-03-09。我用maven来处理构建C ++库的问题是使用maven-exec插件。我通过调用:
加载msbuild工具"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\vcvars32.bat"
从命令行。之后,msbuild将在您的范围内提供。
这些是我的pom文件的内容:
<plugin>
<artifactId>exec-maven-plugin</artifactId>
<configuration>
<executable>msbuild</executable>
<sourceRoot>${basedir}/Library/</sourceRoot>
</configuration>
<executions>
<execution>
<id>clean</id>
<phase>clean</phase>
<configuration>
<arguments>
<argument>${basedir}/Library/Library.vcxproj</argument>
<argument>/p:Configuration=Release</argument>
<argument>/p:Platform=x64</argument>
<argument>/t:Clean</argument>
</arguments>
</configuration>
<goals>
<goal>exec</goal>
</goals>
</execution>
<execution>
<id>build</id>
<phase>compile</phase>
<configuration>
<arguments>
<argument>${basedir}/Library/Library.vcxproj</argument>
<argument>/p:Configuration=Release</argument>
<argument>/p:Platform=x64</argument>
<argument>/t:Build</argument>
</arguments>
</configuration>
<goals>
<goal>exec</goal>
</goals>
</execution>
</executions>
</plugin>
这样,配置将使项目响应清理和编译目标。您可以更进一步,使用程序集插件来打包库,并使其在本地存储库中安装库,以便可以将其作为依赖项添加到其他项目中。