我正在使用Visual Studio 2008,并用C ++编写一些东西。我正在使用Boost库(仅不是标题)。
因此,链接到Boost需要将目录添加到Boost二进制文件到项目的“其他链接器路径”设置。
但是,这与源代码控制没有冲突吗?如果我签入项目文件,那么我的计算机上的Boost库的绝对路径是否也会包含在其中?
我显然不希望这种情况发生,所以我该怎么办?只需将Boost目录添加到“Visual C ++目录/库”即可。
答案 0 :(得分:4)
将Boost路径添加到“Visual C ++目录” 应该。
你应该添加包含路径<Full path here>\boost_1_39_0
(最后没有提升)
和库路径<Full path here>\boost_1_39_0\bin.v2\lib
(bin.v2是一个阶段目录,在你的情况下可能会有所不同)。
就个人而言,我将boost源存储在我的源代码控制中,并在项目设置中使用相对路径。
答案 1 :(得分:1)
我们使用包含第三方库的存储库,然后使用svn:externals
将所需部分签出到项目的基本目录中,最后使用项目文件中其他包含和库目录的相对路径。效果很好,唯一的缺点是你最终可以在你的硬盘上使用几个增强版。使用联结(Windows的'仅限目录的符号链接版本,至少可以在Win2k上运行,不确定NT),你可以摆脱浪费的空间。
答案 2 :(得分:1)
我们将项目中使用的所有第三方标题和库放在源代码管理中的项目树中。这意味着我们使用源跟踪库的版本。
然后我们引用项目属性中的include和source目录。我们不使用Visual C ++目录,因为这会过多地依赖于不同开发人员系统上的文件位置,并且无法跟踪库的版本。
唯一的例外是使用vc6进行开发时的平台sdk。
无耻插件:我们现在使用CMake管理我们的vc项目设置,它使这些事情更容易进行大型项目。
答案 3 :(得分:1)
你以每台计算机的方式告诉VS有关Boost的信息,而不是按照每个项目的方式。就像directx和其他非项目特定的库一样。我们认为假设在多个项目中使用boost是合理的。
我们不会在项目SCM中跟踪外部库源,除非我们与实现细节(修补或其他)密切相关。对于boost,directx,windows sdk,我们只需要您运行相应的安装程序,并在设置开发环境时设置VC++ Directories
。
答案 4 :(得分:0)
我将BOOST_ROOT
环境变量用于某些东西,它运行正常。您必须手动创建它,然后将项目文件中的路径设置为“$(BOOST_ROOT)\include
”和“$(BOOST_ROOT)\lib
”(或您的布局使用的任何内容)。然后每个人都必须在他们的机器上设置BOOST_ROOT
以指向他们的Boost安装。