gpt4 book ai didi

c++ - 来自 boost 的段错误( boost :filesystem:exists)

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

我最近将我的 boost 库升级到了 1.63 版本。但是一个函数 boost:filesystem:exists now doesn't work 。在使用 boost 库 1.54 之前,代码是可以的。相反,现在进入段错误。 :

#include <boost/filesystem.hpp>

namespace fs=boost::filesystem;
using namespace std;

int main()
{
fs::path selfpath=fs::system_complete("Testa2.cpp");
cout<<selfpath<<endl;

if(fs::exists(selfpath.c_str()))
cout<<"Never here"<<endl;

并编译为:

g++ -std=c++11 Testa5.cpp -lboost_filesystem -lboost_system

但存在段错误。

这怎么可能?我该如何解决?

(我在 Ubuntu 上)(我从这里安装了 boost: http://www.linuxfromscratch.org/blfs/view/cvs/general/boost.html )

最佳答案

您安装的二进制文件不是为您正在使用的 (Ubuntu) 发行版构建的。

更喜欢使用特定于发行版的包或从源代码编译,使用与编译程序时相同的编译器版本和标志。

任何其他问题都会遇到 ABI 问题,即 Undefined Behaviour

所以,在 Ubuntu 上,通常像安装 boost 一样

sudo apt-get install libboost-all-dev

关于c++ - 来自 boost 的段错误( boost :filesystem:exists),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45224862/

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