yukimeat1999
@yukimeat1999

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

Windowsの環境変数のpathで%hogehoge%が使えない

解決したいこと

色々あって、Point Cloud Libraryをインストールしpathを通しました。しかし、%hogehoge%のあるpathだけうまく通らないため、直接記述すると上手く通りました。

ここで、疑問に思ったのが、ルートを使っているとはいえ、正常にpathが通っているように見えるのになぜエラーがでるのかということです。

%hogehoge%この書き方は間違っているとは思えないのですが。
だれか分かる方教えてください。

自分で試したこと

ここは別に気にしなくていいです。

WindowsPoint Cloud LibraryAll-in-one Installerでインストールしました。

そのインストールの途中で、次の画像の様に以下のエラーが出てパスが長すぎるといわれました。

Warning! PATH too long installer unable to modify PATH!

rapture_20231017181836.jpg

ネットのインストール方法を見ていると無視していいとのことだったので、無視していました。

一応ネットで調べて環境変数の設定を調べて確かめましたが正常でした。
次の表に記載されている内容がネットでかかれていた正常なpathであり、自分の環境でも入っていたものになります。

variable path
OPENNI2_REDIST64 C:\Program Files\OpenNI2\Redist\
PCL_ROOT C:\Program Files\PCL 1.13.1
Path %PCL_ROOT%\bin
Path %PCL_ROOT%\3rdParty\VTK\bin
Path %OPENNI2_REDIST64%

この状態で、PCLを使った自作のC++のコードをCMakeでソリューションファイルを生成し、Visual Studio 2022でビルドした.exeファイルを実行した。

しかし、次のようなエラーが出た。

pcl_iod.dll が見つからないため、コードの実行を続行できません。プログラムを再インストールすると、この問題が解決する可能性があります。

rapture_20231017195738.jpg

自分でもいろいろ試したが、これはpath%PCL_ROOT%\binが通っていないことが原因だったため、直接C:\Program Files\PCL 1.13.1\binとしたところ、このエラーは出なかった。

しかし、別のエラーが出た。これは以下のファイルが見つからないといったものだった。

vtklOGeometry-9.2-gd.dll
vtklOPLY-9.2-gd.dll
vtklOImage-9.2-gd.dll
vtklOLegacy-9.2-gd.dll

これは調べると%PCL_ROOT%\3rdParty\VTK\binが通ってないことが原因だだったため、先ほどと同じく直接pathを通した。

rapture_20231018103136.jpg

よって最終的に、次の2つのpathを通すことで問題は全て解決し、.exeファイルを実行することができた。

C:\Program Files\PCL 1.13.1\bin
C:\Program Files\PCL 1.13.1\3rdParty\VTK\bin

もちろん再起動とかは試してましたよ。

0

3Answer

Warning! PATH too long installer unable to modify PATH!の意味は↓これです。

↓かなり古い記事ですが、参考になりませんか?

0Like

パスが長すぎるといわれました。

ネットのインストール方法を見ていると無視していいとのことだったので、無視していました。

Visual Studio 2022でビルドした.exeファイルを実行した。

本当に%PATH%が長いのでは?

または、システム環境変数、ユーザ環境変数が不足してる事象におもえます。

対処案

システム環境変数 DUMMY=99999999凄く長く確保

多分Visual Studio でやる?のがベター
ユーザ環境にて set DUMMY=0
ユーザ環境変数 は 自由に設定できます。

PATHも多少確保できるとおもいます。

補足: 子プロセスの環境変数は親プロセスが確保したサイズ+αです。DUMMYを削除すると子プロセスはそのサイズ分の環境変数が利用できます。(DOSの時代の考え)

0Like

Your answer might help someone💌