簡體   English   中英

從屬項目在 Visual Studio 的引用中無法看到庫中的標頭

[英]Dependent project cannot see headers from a library in refferences in Visual Studio

我正在學習如何制作 static 庫。 我從 windows 和 Visual Studio 開始。

目錄結構如下所示:

 - MyLibraryProject
   - include
     - MyLibraryProject
       - MyLibraryHeader.h
   - src
     - MyLibrarySource.cpp
   - build
     - MyLibraryProject.vcxproj
 - MyDependentProject
   - main.cpp
   - MyDependentProject.vcxproj

MyLibraryProject.vcxproj具有以下設置:

環境 價值
配置類型 Static 庫 (.lib)
附加包含目錄 $(MSBuildThisFileDirectory)../include/MyLibraryProject

MyDependentProject.vcxproj沒有特殊設置,除了我將MyLibraryProject添加到引用中,圖像具有我使用的實際名稱:

在此處輸入圖像描述

如果我在 main.cpp 中使用相對路徑,我可以構建項目 - static 鏈接工作得很好,它運行:

#include "../MyLibraryProject/include/MyLibraryProject/MyLibraryHeader.h"

但是,我想包括這樣的標題:

// fatal error C1083: Cannot open include file: 'MyLibraryProject/MyLibraryHeader.h': No such file or directory
#include <MyLibraryProject/MyLibraryHeader.h>

那是行不通的。 我也嘗試使用屬性表,但也無法使用。 我一直在搜索互聯網,但通常發現聲稱如果添加引用,標頭和 static 庫都可以工作。

這是完整的存儲庫,如果您願意看一下。 或者在評論中詢問是否缺少信息。

項目引用不向依賴項目提供有關標頭的任何信息。 最靈活的方法(在 Visual Studio 中)是屬性表。 我創建了一個文件MyLibraryProject/build/MyLibraryProjectDependency.props

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ImportGroup Label="PropertySheets" />
  <PropertyGroup Label="UserMacros" />
  <PropertyGroup />
  <ItemDefinitionGroup>
    <ClCompile>
      <AdditionalIncludeDirectories>$(MSBuildThisFileDirectory)..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
    </ClCompile>
  </ItemDefinitionGroup>
  <ItemGroup />
</Project>

我將它添加到 Visual Studio 的屬性資源管理器中的MyDependentProject.vcxproj中。 這解決了問題,現在可以在我想要的路徑上看到標題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM