【发布时间】:2017-02-02 13:29:57
【问题描述】:
将library.type 设置为static 并运行mvn -X clean compile 时,DEBUG 输出显示:
[DEBUG] 执行:Java13CommandLauncher:使用参数执行 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64\cl':
''
'/c'
'/nologo'
'/EHsc'
'/DNDEBUG'
'/MD'
'/GR'
...
包括/MD,恕我直言,这里不应出现。这同样适用于编译带有test.link 设置为static 的测试可执行文件以及编译带有test.link 设置为shared 的源文件。我会使用/MD 的唯一情况是在编译链接到共享库的可执行文件时。
尽管 maven 生成了一个静态库并且测试运行没有错误,但在代码中设置 _DLL 定义会混淆我用于编译共享库的 __declspec(dllexport/dllimport) 宏,并且在静态情况下根本不需要。
谁能给我一个提示,我是否正在监督某些事情,或者这可能是一个插件错误?
该示例取自com.github.maven-nar网站的it0010-lib-static示例并对其进行了修改,并将pom文件剥离到最小:
pom.xml:
<build>
<plugins>
<plugin>
<groupId>com.github.maven-nar</groupId>
<artifactId>nar-maven-plugin</artifactId>
<version>3.5.1</version>
<extensions>true</extensions>
<configuration>
<libraries>
<library>
<type>static</type>
</library>
</libraries>
<linker>
<name>msvc</name>
</linker>
<tests>
<test>
<name>HelloWorldTest</name>
<link>static</link>
</test>
</tests>
</configuration>
</plugin>
</plugins>
</build>
【问题讨论】:
标签: c++ c visual-studio maven maven-nar-plugin