【发布时间】:2018-08-16 14:04:02
【问题描述】:
我们有一个静态库,可以导出一些 grpc.pb.cc、grpc.pb.h 文件以及一堆其他普通文件。我们称之为 LibMicroservicesClient。
然后我们有另一个库,它使用 msbuild 中的 ProjectReference 链接该库:
<ItemGroup>
<ProjectReference Include="$(MSBuildThisFileDirectory)LibMicroservicesClient.vcxproj">
<Project>{A397A6CB-641A-41FB-9E8C-2263EC3712E8}</Project>
<Private>false</Private>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
<LinkLibraryDependencies>true</LinkLibraryDependencies>
<UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>
</ProjectReference>
</ItemGroup>
在导入此 LibMicroservicesClient 的最终库的链接处,在中间文件夹中开始生成一堆 .asm 文件。这些文件也在 LibMicroservicesClient 中间文件夹中生成,因此当两个库引用同一个 LibMicroservicesClient 时,它们开始在访问被拒绝时发生冲突,因为它们正在创建相同的 .asm 文件。
如何引用一个根本不会创建 asm 文件的静态库???我怎么能控制这个东西。
我们使用的是 Visual Studio 2015。我们使用 MSBuild 进行构建。
【问题讨论】:
-
是否启用并行编译?
标签: c++ visual-studio-2015 msbuild static-linking