boost :: filesystem体系结构x86_64的未定义符号

时间:2015-08-07 15:26:18

标签: c++ macos boost g++

我使用GNU非常新。我试图开始使用boost文件系统库,我不断收到这些错误。我正在尝试使用define(['cookie'], function(){ }); 获取当前工作目录。

我的代码:

({
      include: ["cookiejs","requirejs"],
      baseUrl: '.',
      paths: {
      'cookiejs': 'cookie',
      'requirejs': 'require'
    },
      name:"main",
      out: "main-built.js",
      shim : {
         "main" : ["cookiejs"] //This means main depends on cookie
      }
    })

我的命令:

boost::filesystem

结果:

boost::filesystem::path full_path( boost::filesystem::detail::current_path() );
cout << "Current path is : " << full_path << endl;

有人可以解释一下错误的要求吗?我做错了什么?

1 个答案:

答案 0 :(得分:1)

boost.filesystem不是仅限标头的库。您必须使用-L-l标记链接到库。 (并确保库已经正确构建)。您需要链接到boost_systemboost_filesystem库。 命令行可能如下所示:

g++ -Iboost_1_58_0 -Lboost_1_58_0/lib/ -lboost-filesystem -lboost_system main.cpp -o example

(将-L参数替换为libboost-filesystem.so文件所在的路径

然后,在您运行可执行文件之前,您必须让加载程序知道在哪里查找库。你可以使用以下命令执行此操作:

export DYLD_LIBRARY_PATH=/path/to/boost/bib:$DYLD_LIBRARY_PATH

为了使其自动化,我建议使用像cmake这样的构建系统而不仅仅是命令行。