我试图为C ++打包工具包,其中包含文件分布在多个文件夹中,如下所示:
Includes - cen_dcm -dcmnet
-ofstd
-dcmdata
nuspec内部是:include: { ${SDK_Base}\cen_dcm\**\*.h };
部署此程序包后,我会在以下位置获取包含文件:
..\packages\DCMTK.3.42.0.0\build\native\include
包括子文件夹。
当我使用包含IntelliSense时没有问题找到它,但如果包含文件包含来自不同文件夹的内容,则无法找到它。
所以我使用:#include"dcmnet/assoc.h"
工作得很好,但在编译assoc.h
时报告找不到osconfig.h
该文件位于包中,但位于ofstd
文件夹中。
通常我会通过添加额外的包含来解决这个问题,但由于这是一个我不想要的包。
我错过了什么?我无法想象对缺乏某种东西的支持是缺乏的吗?
答案 0 :(得分:1)
回答我自己的问题。您可以将{targets}添加到autopkg文件中。
看起来像这样:
targets {
Includes += "$(MSBuildThisFileDirectory)..\..${d_include}cen_dcm";
Includes += "$(MSBuildThisFileDirectory)..\..${d_include}cen_dcm\config";
Includes += "$(MSBuildThisFileDirectory)..\..${d_include}cen_dcm\dcmtls";
Includes += "$(MSBuildThisFileDirectory)..\..${d_include}cen_dcm\dcmdata";
Includes += "$(MSBuildThisFileDirectory)..\..${d_include}cen_dcm\dcmnet";
Includes += "$(MSBuildThisFileDirectory)..\..${d_include}cen_dcm\ofstd";
}
此附加包含文件夹将显示在package.targets文件中。
使用{targets}有更多可能性。见http://coapp.org/reference/autopackage-ref.html