0

入力として、関数はファイル パスと名前パラメーターを取得します。

const QString& buildSourcePathAndName  

さらなる処理のためにのみパスを抽出する必要があります。私はそれを行うために以下のコードを使用しました。

boost::filesystem::path p(string(buildSourcePathAndName.toLatin1().data()));
m_pSourceCodePath = p.parent_path().string();

Windowsでは問題なく動作しますが、Linux(ubuntu)ではコンパイルできず、エラーが発生します。

undefined reference to `boost::filesystem3::path::parent_path() const'

このエラーについて読みました - ブースト ライブラリのバージョンを変更することを提案しています。私たちのシステムではそれを行うことができません。この問題の可能な解決策は何ですか? (パスを抽出するコードを実装したくありませんが、いくつかの既存の関数を使用します)

4

1 に答える 1

2

Windows では、ブースト ライブラリはプラグマを使用してライブラリをリンカー コマンド ラインに自動的に追加します。Linux 用にビルドする場合は、使用するビルド システムにライブラリを明示的に追加する必要があります (ForEveR と hmjd で提案されているように、リンカー コマンド ラインの最後に -lboost_filesystem を追加します)。

于 2013-01-28T12:14:34.293 に答える