繁体   English   中英

Visual Studio在一个解决方案中“同步”多个项目

[英]Visual Studio “synchronize” multiple projects within one solution


我正在Visual Studio中编写自己的C ++项目库(几个项目由* cpp,*。h文件组成,而不是实际的.lib文件)。 这些项目中的每一个都位于单个Visual Studio“解决方案”中。

当我需要使用另一个项目中的代码时,只需复制它即可。 但这是短期解决方案。 现在,我的库的大小和功能都在增长,由于代码重复,我最终得到了同一文件的数十种不同版本。

单一的解决方案可作为我//作为新想法的试验场。 我正在开发项目而不是库。 目前,它拥有约50个项目。

我正在Visual Studio 2015中工作。


可以说我有这样的设置:

  1. DataIO项目位于*/Solution/#DataInputAndOutput/DataIO/DataIO.h
    由DataIO.h和DataIO.cpp组成
  2. Foo项目位于*/Solution/#Foo/Foo/Foo.h
    由Foo.h和Foo.cpp组成

DataIO.h:

#pragma once
#ifndef __DATA_IO_H__
#define __DATA_IO_H__
// ...

extern FILE * const logFile;

// Bunch of function declarations
#endif // !__DATA_IO_H__

我知道这不是“最小,完整和可验证的示例”,但我的问题在于事物的后勤保障,而不是事物本身。 而且我相信我的描述就足够了。


问题1:Foo.cpp#include "DataIO.h" (之所以可能,是因为我在Foo项目设置中添加了其他include目录),但是每当我尝试编译Foo时,都会出现以下错误:每个函数都无法unresolved external symbolDataIO.h内部DataIO.h和一个外部变量。 如何解决此问题? 我是否需要创建一个DataIO.lib来使事情变得简单?

我试图将DataIO.hDataIO.cpp直接添加到Foo项目中(不要复制它,只需将其添加到项目中),但这似乎是一个坏主意...

最好的方法是将公共代码分解到一个库中,以便公共代码驻留在一个地方。 然后让您的项目使用库-通过包含文件并与所述库链接。

我建议在VS2015 +中尝试新的“共享项目项目”。 一个共享项目项目是从字面上只是一组文件。 该项目本身不构建任何东西。 事实上,有一个共享项目项目没有(或几乎没有),编译或链接设置 - 这些设置都将引用共享项目项目项目。 当您从其他一些项目FOO引用共享项目工程,FOO的积累发生,因为如果共享项目工程的文件是引用项目的项目。

简而言之,您可以设置共享项目以构建.libs,然后在Visual Studio中使用“项目引用”来自动设置链接。 我认为您在执行此操作时必须手动设置包含路径。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM