为不同用户链接位于不同路径的库

时间:2018-12-14 17:46:23

标签: c++ git visual-studio

在Windows上使用Visual Studio,我有一个位于git存储库中的项目。 我需要链接到该库进行编译。 我希望这个项目可以在不同的计算机上构建,这些库可以位于不同的路径上(非常庞大的库,我无法将其作为子模块或依赖项进行嵌入)

我如何才能使存储库的贡献者可以设置项目并选择库的位置,而无需实际修改git跟踪的项目文件(.vcxproj)? 我应该学习如何使用CMAKE并且完全不提交项目文件吗?

谢谢;)

注意: 我应该补充一点,该库是一个静态库.lib,我考虑使用#pragma comment(lib,“ yourLibrary.lib”),但这也将在源代码中引入,这对我的需求不利。

此外,如果我要调用“ MSBUILD myproject.sln”,我想从Visual Studio GUI界面以及命令行中设置此“自定义”库路径。

2 个答案:

答案 0 :(得分:0)

这是一个基于观点的问题,但是我将尝试介绍您可以考虑的两个选项。

第一个是使用环境变量。在VS中指定链接库时,将使用该变量。这涵盖了msbuild部分,但不涉及VS GUI部分,因为您需要重新启动VS。

CMake确实是另一种解决方案。在其GUI中,您可以设置库的路径,它为所需的编译器(几乎所有VS版本和32/64位+ Linux)生成解决方案。

您获得了GUI来更改VS中的路径,但是您松开了将命令行上的路径设置为msbuild的选项(您需要在CMake GUI或CmakeCache.txt中对其进行更改)。

pragma版本是禁止选项。这不能正确解决PATH问题,并且无法移植。

答案 1 :(得分:0)

我会在跨平台项目中使用cmake,但是VS对于仅适用于Windows的盒子应该没问题。跨机器修改库路径是一个常见的用例,VS应该可以轻松地处理它。 VS应该将用户特定的默认路径替代项自动保存到一个不需要检入的单独文件中。自从我使用VS已经有一段时间了,但是看起来它是如何工作的:)。