gpt4 book ai didi

c++ - 在 Mac 上使用/使用 boost::filesystem 连接文件路径时程序崩溃

转载 作者:行者123 更新时间:2023-11-28 07:25:04 30 4
gpt4 key购买 nike

当我使用 Boost 的 Filesystem Path 类将文件路径与 operator/连接时,我的程序在执行该行代码时崩溃,并在带有 Xcode 4.6.3 的 OS X 上抛出 EXC_BAD_ACCESS 异常。

boost::filesystem::path macintoshHD("Macintosh HD");
boost::filesystem::path library("Library");

library = macintoshHD / library; // EXC_BAD_ACCESS

当我尝试将路径与字符串常量或 std::strings 连接时,也会发生同样的情况。

boost::filesystem::path cwd(boost::filesystem::current_path());

boost::filesystem::path resources = cwd / "Resources"; // EXC_BAD_ACCESS

问题似乎出在 Boost/Filesystem/Path 本身。这可能是什么原因造成的,我该如何解决?提前致谢。

最佳答案

将我的编译器从 Apple LLVM 4.2 更改为 LLVM GCC 4.2 修复了错误。

显然 Apple 的编译器将字符串常量存储在 char[1] 缓冲区中。 Boost 将 char[1] 视为空路径并忽略它们,假设 char[1] 仅大到足以容纳终端空字符。

这个网站帮助我了解发生了什么: http://boost.2283326.n4.nabble.com/boost-filesystem-path-operator-is-broken-for-char-1-in-1-48-td4574639.html

关于c++ - 在 Mac 上使用/使用 boost::filesystem 连接文件路径时程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18901835/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com