C++ visualc+中的文件夹结构+;当有许多项目相互依赖时

C++ visualc+中的文件夹结构+;当有许多项目相互依赖时,c++,visual-studio,include-path,directory-structure,C++,Visual Studio,Include Path,Directory Structure,假设我有一个包含10个项目(名为proj1到proj10)的sln,proj1是生成EXE文件的默认项目 我的问题是:如何放置“include”文件夹? 我的意思是,如果proj2使用proj3(包括其头文件和链接其lib文件),如何放置“include”文件夹 有两种方法: 将所有头文件和库文件放在项目同一级别的不同根文件夹中 使每个项目都自我关闭,并且希望使用此项目的其他项目应注意包含路径和链接路径。当然,我们应该为每个项目的布局制定规则(例如,每个项目的根文件夹中必须有一个“include

假设我有一个包含10个项目(名为proj1到proj10)的sln,proj1是生成EXE文件的默认项目

我的问题是:如何放置“include”文件夹? 我的意思是,如果proj2使用proj3(包括其头文件和链接其lib文件),如何放置“include”文件夹

有两种方法:

  • 将所有头文件和库文件放在项目同一级别的不同根文件夹中

  • 使每个项目都自我关闭,并且希望使用此项目的其他项目应注意包含路径和链接路径。当然,我们应该为每个项目的布局制定规则(例如,每个项目的根文件夹中必须有一个“include”文件夹和一个“lib”文件夹)

  • 有什么建议吗?
    谢谢

    说到VisualStudio,我不喜欢你建议的两种方法中的任何一种,尽管我的方法与你的选择关系最为密切#2。我喜欢这样组织:

    <SolutionRoot>
      <Project1>
         project1.vcxproj
         someheader.h
         somesource.cpp
      <Project2>
      <Project3>
      <Project4>
      <Project5>
      application.sln
    
    这样做的好处是你不会把你的“额外包含”搞得乱七八糟,所以很容易一眼就能看出一个项目有哪些外部包含

    至于链接到lib文件,为什么不利用visualstudio的项目引用功能呢。老实说,你的生活会更轻松。只需将其连接起来,使Project2引用Project1,等等。。。这样您就不必担心库和链接器路径。您只能对解决方案树之外的工具包(例如libpngopenssl等发行版)执行此操作


    同样,您可以释放该设置,使其仅显示解决方案之外的链接。另一个优点是,如果使用引用,则生成顺序是隐式定义的。

    对于Visual Studio,我不喜欢您建议的两种方法中的任何一种,尽管我的方法与您的选项关系最为密切#2。我喜欢这样组织:

    <SolutionRoot>
      <Project1>
         project1.vcxproj
         someheader.h
         somesource.cpp
      <Project2>
      <Project3>
      <Project4>
      <Project5>
      application.sln
    
    这样做的好处是你不会把你的“额外包含”搞得乱七八糟,所以很容易一眼就能看出一个项目有哪些外部包含

    至于链接到lib文件,为什么不利用visualstudio的项目引用功能呢。老实说,你的生活会更轻松。只需将其连接起来,使Project2引用Project1,等等。。。这样您就不必担心库和链接器路径。您只能对解决方案树之外的工具包(例如libpngopenssl等发行版)执行此操作


    同样,您可以释放该设置,使其仅显示解决方案之外的链接。另一个优点是,如果使用引用,构建顺序是隐式定义的。

    我会选择第一种解决方案。它使项目设置变得简单。作为我们工作的C++项目,我们总是把头文件放在一起。

    < P>我会使用第一个解决方案。它使项目设置变得简单。作为我们工作的C++项目,我们总是把头文件放在一起。