問題タブ [conan]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1509 参照

c++11 - boost::filesystem::current_path() は空のパスを返します

後でフォルダーを作成するために現在のパスが必要な C++ プログラムがあります。私の実行可能ファイルの場所は、たとえば/home/me/foo/bin. これは私が実行するものです:

パッケージマネージャーConanでインストールされたBoost 1.66を使用して、Ubuntu 16.04で実行しています。

Conanを使用せずに、以前のバージョンのBoost(1.45だと思います)でこれを正常に実行していました。Boostは私のマシンに正常にインストールされました。を実行するとコア ダンプが表示されるようになりましたcreate_directories( boostPath);

2 つの質問:

  1. current_path()実際のパスを提供せず、代わりにリターンと空のパスを提供しないのはなぜですか?
  2. current_path() が何も返さなかったとしても、なぜ実行してもコア ダンプが残るのでしょうsudoか? ルートにフォルダを作成するだけではないでしょうか?

編集:

コンパイルされたプログラムを実行し、coutデバッグ モードを使用するのではなく、行間に上記の変数の出力をいくつか入れると、通常、次の出力が得られます。

しかし、時々 (時間の約 20%)、次の出力が得られます。

編集2:

実行すると、次のconan profile show defaultようになります。