问题标签 [libc++]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1099 浏览

c++ - OpenCV 错误:cvAdaptiveThreshold 中的断言失败

我最近在 OSX 上开始了一些 OpenCV 编程(仅使用文本编辑器并在终端中编译)。我在互联网上找到了对我非常有用但似乎无法运行的程序。这是代码:

这是我得到的错误:

我试图改变这条线

进入

没有运气。OpenCV 通过 Macports 安装并运行最新版本。任何帮助,将不胜感激。谢谢!

0 投票
1 回答
7417 浏览

c++ - clang++ 3.2 链接器找不到 C++ 标准库

我已经在我的 Ubuntu 13.04 机器上安装了 clang 3.2,并且已经编译并构建了 libc++,一切就绪。但是,当我尝试链接我的(非常简单的)代码时,链接器报告对 std::cout 等的引用未定义。

如果有人能告诉我我能做些什么来解决这个问题,我将非常感激——我已经尝试了我能想到的一切。

命令和输出在这里:

0 投票
1 回答
158 浏览

c++ - 在调用 emplace_back 期间修改 std::deque 是否合法?

我正在使用emplace_back将项目添加到std::deque. 在构建过程中,新项目可能会向std::deque正在构建的项目添加其他项目。这导致了非常有趣的行为。考虑这个片段:

它创建了一个deque对象foo。第一个对象的标记是"my initial marker",因为createInnertrue,它将创建第二个。我希望得到以下结果:

但是,使用 clang++(tags/Apple/clang-421.11.66)和 libc++(不确定它是什么版本),这就是我得到的:

如您所见,第一个对象的m_marker字段被第二个对象覆盖,而出现在双端队列中的第二个对象现在是空的。所以很明显某处有一个错误,它必须是deque在调用期间修改 a 是未定义的行为emplace_back,或者 libc++ 没有完成它的工作。哪一个?

0 投票
1 回答
738 浏览

c++ - C ++ 11,std :: atomic在clang 3.2和libc ++中损坏?

我在使用 XCode 版本 4.6.3 (4H1503) 和 clang 的 Mac OS X 10.8 上遇到了一个奇怪的问题:Apple LLVM 版本 4.2 (clang-425.0.28) (基于 LLVM 3.2svn) 目标:x86_64-apple-darwin12.4.0线程模型:posix

我创建了一个非常基本的 thread_pool 类并想对其进行压力测试。

我的测试用例用 1 个线程创建并销毁了一个 thread_pool 对象,即

在第二次循环迭代测试用例失败,因为done_在第一次进入时finish_and_join_all()true. 更改std::atomic<bool>类型以volatile bool解决问题。

测试的输出如下(导致条件变量)失败,因为析构函数没有等待所有线程完成:

这是 std::atomic 的预期行为吗?

0 投票
1 回答
4117 浏览

c++ - 在带有 std::unordered_map 的 std::scoped_allocator_adaptor 中使用自定义分配器

我正在尝试使用一个简单的内存池分配器std::unordered_map。我似乎成功地使用了这个相同的分配器std::stringstd::vector. 我希望 unordered_map (和向量)中包含的项目也使用此分配器,因此我将分配器包装在std::scoped_allocator_adaptor.

简化定义集:

初始化如下:

lake_alloc下面显示了其余的迭代器代码。我在 Clang 3.3 中遇到的错误是它allocator_type(在这种情况下是一对字符串到向量的 mm_alloc)不能自己的__pointer_allocator. 那是用于哈希映射实现的内部类型。下面的部分错误输出:

GCC 4.7.1 在其哈希映射内部结构中给了我一个类似的错误,所以很明显我做错了,但这是我第一次尝试 STL 中的分配器,我不知所措。

自定义分配器如下,这是一个简单的实现,其中有一些漏洞,但这个版本在包含几个兆数据的向量和字符串中的包含测试用例中运行良好。

0 投票
1 回答
601 浏览

linux - 带有 clang++ 和 libc++ 的 Linux 上的 std::cerr 导致 SIGABRT

我正在尝试在使用 clang++ 3.3 libc++ libc++abi 编译的 Ubuntu 12.04 x64 上运行一个简单的程序。

程序:

写入 std::cerr 会打印消息,但会导致 SIGABRT。

但是,写入 std::cout 可以正常工作。

这里是可执行文件的 ldd 输出:

谁能给我一个提示如何解决这个问题?

这是回溯:

0 投票
1 回答
671 浏览

c++ - 在 libc++ 上,为什么 regex_match("tournament", regex("tour|to|tournament")) 失败?

http://llvm.org/svn/llvm-project/libcxx/trunk/test/re/re.alg/re.alg.match/ecma.pass.cpp中,存在以下测试:

为什么这场比赛会失败?

在 VC++2012 和 boost 上,匹配成功。
在 Chrome 和 Firefox 的 Javascript 上,"tournament".match(/^(?:tour|to|tournament)$/)成功。

仅在 libc++ 上,匹配失败。

0 投票
1 回答
268 浏览

c++ - 在 Linux 上重现 libc++/libstdc++ ABI 不兼容问题

我的一个朋友和我正在使用 C++11 开发一个项目。他使用的是 OS X,而我使用的是 Linux。

由于libc++libstdc++不是 ABI 兼容的,我们必须确保不要在我们的库和我们的应用程序之间混淆。

但是,我们目前有由混合引起的链接器问题libc++libstdc++我想尝试找出它是由哪些库引起的。

理想情况下,我想在家里做,但由于我没有 Mac,我不想为一个错误修复支付数百美元,我想尝试在我的 linux 系统上重现该问题。

0 投票
2 回答
1089 浏览

c++ - 是否有用于检测 C++11 标准库的预处理器指令?

是否可以使用预处理器指令确定 C++ 标准库是否支持 C++11?

我目前正在开发一个使用 C++11 语言方言的项目,但使用的是不支持 C++11 的 C++ 标准库(我需要它才能与非 C++11 库链接)。

我知道我可以使用 测试 C++11 支持#if __cplusplus >= 201103L,但在我的情况下,这将评估为 true。我需要了解 C++ 标准库对 C++11 的支持。

0 投票
2 回答
2425 浏览

installation - 如何启用 cmake 从安装中排除子目录?

我一直在尝试在 RHEL 6.4 机器上构建 3.3 的RPM软件包。libc++我需要静态库和共享库。所以,我学习了一些基础知识,cmake然后修改了捆绑的CMakeList.txt. 让那部分工作。

但是由于在 RHEL 6.x 中,所有 64 位库都应该转到/usr/lib64而不是/usr/lib,所以我一直在尝试使用以下方法来完成工作:

(A) 在构建过程中,我使用

让所有库文件 (*.so**.a) 位于lib64而不是lib.

(B) 使用ADD_LIBRARY...如下所示的命令

和...一起

获取安装在/usr/lib64.

(C) 此外,与

也安装了共享库/usr/lib64

但是共享库的副本仍然安装在/usr/lib生成的 RPM 中。我该如何预防?

如果我要编写一个 RPMspec文件,_libdir宏会自动处理它。考虑cmake到我仍然是新手,我会很感激关于正确使用指令的提示/指针。