问题标签 [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.
c++ - OpenCV 错误:cvAdaptiveThreshold 中的断言失败
我最近在 OSX 上开始了一些 OpenCV 编程(仅使用文本编辑器并在终端中编译)。我在互联网上找到了对我非常有用但似乎无法运行的程序。这是代码:
这是我得到的错误:
我试图改变这条线
进入
没有运气。OpenCV 通过 Macports 安装并运行最新版本。任何帮助,将不胜感激。谢谢!
c++ - clang++ 3.2 链接器找不到 C++ 标准库
我已经在我的 Ubuntu 13.04 机器上安装了 clang 3.2,并且已经编译并构建了 libc++,一切就绪。但是,当我尝试链接我的(非常简单的)代码时,链接器报告对 std::cout 等的引用未定义。
如果有人能告诉我我能做些什么来解决这个问题,我将非常感激——我已经尝试了我能想到的一切。
命令和输出在这里:
c++ - 在调用 emplace_back 期间修改 std::deque 是否合法?
我正在使用emplace_back
将项目添加到std::deque
. 在构建过程中,新项目可能会向std::deque
正在构建的项目添加其他项目。这导致了非常有趣的行为。考虑这个片段:
它创建了一个deque
对象foo
。第一个对象的标记是"my initial marker"
,因为createInner
是true
,它将创建第二个。我希望得到以下结果:
但是,使用 clang++(tags/Apple/clang-421.11.66)和 libc++(不确定它是什么版本),这就是我得到的:
如您所见,第一个对象的m_marker
字段被第二个对象覆盖,而出现在双端队列中的第二个对象现在是空的。所以很明显某处有一个错误,它必须是deque
在调用期间修改 a 是未定义的行为emplace_back
,或者 libc++ 没有完成它的工作。哪一个?
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 的预期行为吗?
c++ - 在带有 std::unordered_map 的 std::scoped_allocator_adaptor 中使用自定义分配器
我正在尝试使用一个简单的内存池分配器std::unordered_map
。我似乎成功地使用了这个相同的分配器std::string
和std::vector
. 我希望 unordered_map (和向量)中包含的项目也使用此分配器,因此我将分配器包装在std::scoped_allocator_adaptor
.
简化定义集:
初始化如下:
lake_alloc
下面显示了其余的迭代器代码。我在 Clang 3.3 中遇到的错误是它allocator_type
(在这种情况下是一对字符串到向量的 mm_alloc)不能自己的__pointer_allocator
. 那是用于哈希映射实现的内部类型。下面的部分错误输出:
GCC 4.7.1 在其哈希映射内部结构中给了我一个类似的错误,所以很明显我做错了,但这是我第一次尝试 STL 中的分配器,我不知所措。
自定义分配器如下,这是一个简单的实现,其中有一些漏洞,但这个版本在包含几个兆数据的向量和字符串中的包含测试用例中运行良好。
linux - 带有 clang++ 和 libc++ 的 Linux 上的 std::cerr 导致 SIGABRT
我正在尝试在使用 clang++ 3.3 libc++ libc++abi 编译的 Ubuntu 12.04 x64 上运行一个简单的程序。
程序:
写入 std::cerr 会打印消息,但会导致 SIGABRT。
但是,写入 std::cout 可以正常工作。
这里是可执行文件的 ldd 输出:
谁能给我一个提示如何解决这个问题?
这是回溯:
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++ 上,匹配失败。
c++ - 在 Linux 上重现 libc++/libstdc++ ABI 不兼容问题
我的一个朋友和我正在使用 C++11 开发一个项目。他使用的是 OS X,而我使用的是 Linux。
由于libc++
和libstdc++
不是 ABI 兼容的,我们必须确保不要在我们的库和我们的应用程序之间混淆。
但是,我们目前有由混合引起的链接器问题libc++
,libstdc++
我想尝试找出它是由哪些库引起的。
理想情况下,我想在家里做,但由于我没有 Mac,我不想为一个错误修复支付数百美元,我想尝试在我的 linux 系统上重现该问题。
c++ - 是否有用于检测 C++11 标准库的预处理器指令?
是否可以使用预处理器指令确定 C++ 标准库是否支持 C++11?
我目前正在开发一个使用 C++11 语言方言的项目,但使用的是不支持 C++11 的 C++ 标准库(我需要它才能与非 C++11 库链接)。
我知道我可以使用 测试 C++11 支持#if __cplusplus >= 201103L
,但在我的情况下,这将评估为 true。我需要了解 C++ 标准库对 C++11 的支持。
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
到我仍然是新手,我会很感激关于正确使用指令的提示/指针。