非常にシンプルなコード魔法使いが、ファイルが存在するかどうかを確認するためにLibboostファイルシステムを利用しています。また、静的ライブラリではなく、libboostをdllライブラリとして使用したいと考えています。ここでは、私は数分前に書かれたものを持っている:私は、リンカ設定から-lboost_filesystemを削除して、Eclipseの設定でグローバルマクロBOOST_FILESYSTEM_DYN_LINKを追加するとき[C++] [cygwin] [gcc] BOOST_FILESYSTEM_DYN_LINK経由でDLLからファイルシステムをブーストする
void Hex2bin::convert(string filename, vector<uint8_t>* decodedBytes) {
const path fname(filename); // from boost::filesystem
if (exists(fname)) {
;
}
else {
throw new EFileDoesntExist;
}
}
は、残念ながら、私は以下のようにのみ、このようなリンカエラーを取得:
は/ usr/include/boost/filesystem/operations.hpp:446: `boost :: filesystem :: detail :: status(boost :: filesystem :: path const &、boost :: system :: error_code *)への未定義参照 '
ソースファイルは警告なしでコンパイルされます。 -lboost_filesystemに戻っても問題ないですが、ライブラリが静的にEXEファイルにリンクされていると仮定します。何が間違っているのか誰にも分かりますか?あるいは、私はlibboostをどのようにリンクさせることができないのか間違っているのでしょうか?
こんにちは。あなたが正しいです。私はちょうど私のexeでlddをチェックし、ライブラリはdllからリンクされています:) –