[英]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.