

Visual Studio 2017を使用しています。

ユーザマクロを以下のように指定しています。  
[![画像の説明をここに入力](https://i.stack.imgur.com/sdK9s.png)](https://i.stack.imgur.com/sdK9s.png)

それで、プロジェクトのライブラリのパス指定に以下のように、ユーザマクロを  
使用しているのですが、ビルドできません。

[![画像の説明をここに入力](https://i.stack.imgur.com/XO0EU.png)](https://i.stack.imgur.com/XO0EU.png)

上図各ライブラリのプロパティの相対パスにユーザマクロを使用しているのですが、  
ビルドすると、ユーザマクロを認識していないようです。

どこが、間違っているのでしょうか？


CC BY-SA 4.0
2020-05-02T06:46:58.943
66199
2020-05-02T16:14:30.217
2020-05-02T07:10:06.673
3060
39774
question
visual-studio
Visual Studio 2017 ライブラリのパス指定にユーザマクロが使用できない


継続して調べていて現象は判明したと思われます。

結局、IDE画面右下の **`Xxxxファイルのプロパティ`の相対パスにはマクロは使えない** ということでしょう。

該当ファイルプロパティの絶対パスを全て展開して良く見るとわかりますし、プロジェクトのフォルダパスを短くすると直ぐ明確にわかるでしょう。

例えば`C:\Work\TestPro`がプロジェクトのフォルダであった場合、相対パスを`$(DevKitPath)\Support\Lib\Win\ACAP_STATD.lib`にすると、絶対パスは`C:\Work\TestPro\$(DevKitPath)\Support\Lib\Win\ACAP_STATD.lib`となります。

そうして、それは存在しないパスとファイルであり、質問の2つ目のスクリーンショットでは、該当ファイルのアイコンに黄色い三角の！マークが付いていて、無効な指定であることを示しています。

前回の質問＆回答で、 **`Xxxxファイルのプロパティ`の完全/相対パスが有効な値に見えると書いたのは間違いでした。** 後で修正しておきます。

* * *

なお、例えここでユーザーマクロが有効であったとしても、指定しているのが **相対パス**
であるため、基点となるフォルダがプロジェクトのフォルダであり、そこに絶対パスであるマクロを記述して展開されたとしても有効なパスにはなり得ないということで、2重の意味で使えない訳です。

前回回答のように、リンカの「追加のライブラリディレクトリ/追加の依存ファイル」を設定する方法に変更するのであればユーザーマクロを適用出来ますが、
**ソリューションエクスプローラーペインのリストに該当ファイルを記載したままにするのであれば、ユーザーマクロを適用することは出来ない** 、と考えられます。


CC BY-SA 4.0
2020-05-02T08:40:24.790
66206
2020-05-02T16:14:30.217
2020-05-02T16:14:30.217
26370
26370
66199
answer