草庐IT

c++ - 依赖于其他 slib 的静态库是否需要它们的实际 'code' 才能工作?

抱歉问题标题模糊,我只是想确定一些事情。静态库不与其他静态库链接,对吗?所以当我写一个slib:A,它使用另一个:B的功能时,我必须提供的只是B到A的header,而且只有那些,即使A实际上使用了B的功能?是吗?只要使用A的exe:X,有没有指定B.lib作为链接器输入?因此在链接时,链接器采用A.lib,它基本上只知道B的函数在其代码中的某处被调用,并以某种方式从B.lib中填充该信息,使A.lib成为“完整的”,在X与它现在工作的部分链接之前?这些问题背后的动机是摆脱一些链接器警告4006和丢弃的双重定义,我认为这应该可以解决问题,如果这实际上是一种有效的方法的话。

c++ - 部分更改 C++ 库同时保持库的其余部分完整的最佳实践

在像OpenCV这样成熟的C++库中添加或修改单个类方法的最佳实践是什么,同时仍然重用库代码的其余部分,最好是lib格式。在这一点上,我知道的唯一方法是将属于特定库(假设是OpenCV的核心库)的所有源文件和头文件复制到当前源文件夹,修改那个函数并用其余的重新编译模块的代码。理想情况下,我希望能够按原样链接所有当前.lib文件,但只需为这些库中定义的类定义一个新方法(或修改当前方法),我的方法实现将取代该方法默认库文件的实现。继承似乎并不总是一种选择,因为有时基类具有正确的继承类实现所需的私有(private)成员。 最佳答案 我不

c++ - 简单快速的 C++ 压缩库/类

是否有一些简单易用的C++库或只是一个用于压缩的类?它应该是易于使用和快速的东西。压缩比可能更差。 最佳答案 miniz公共(public)域(unlicense.org)库在单个.C源文件中实现了大部分zlibAPI。 关于c++-简单快速的C++压缩库/类,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4235450/

c++ - 用于分析 C++ 代码库的工具

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭8年前。Improvethisquestion哪些工具对于分析C++代码库最有用?它们的价格是多少?我们可以使用免费和试用软件来管理,还是有一些好的商业软件我们真的应该付费购买?主要目标是了解质量-内存问题等,还要了解代码(例如,为了发现架构问题),也许是编码标准。主要是静态分析,但是我们希望能够运行代码。认为它需要“稳健,因为它应该与神秘编译器的代码一起工作。

c++ - SSE2 : Double precision log function

我需要日志功能的开源(无许可证限制)实现,有签名的东西__m128d_mm_log_pd(__m128d);它在英特尔短vector数学库(ICC的一部分)中可用,但ICC既不是免费的也不是开源的。我正在寻找仅使用内部函数的实现。它应该使用特殊的有理函数逼近。我需要一些几乎与cmath日志一样准确的东西,比如9-10位十进制数字,但速度更快。 最佳答案 我相信log2更容易计算。您可以将您的数字乘以/除以2的幂(非常快),使其位于(0.5,2],然后您使用Padeapproximant(取M接近N),这很容易一次又一次地得出all,

c++ - 如何将静态库 (.a) 添加到 C++ 程序中?

我想知道如何在C++中使用我创建的静态库,首先是库://header:foo.hintfoo(inta);.//code:foo.cpp#includefoo.hintfoo(inta){returna+1;}然后我先编译库:g++foo.cpparrclibfoo.afoo.o现在我想在一些文件中使用这些库,例如://prog.cpp#include"foo.h"intmain(){inti=foo(2);returni;}我现在必须如何编译这些?我做了:g++-L.-lfooprog.cpp但是得到一个错误,因为找不到函数foo 最佳答案

c++ - 在指定 C++ 异常和 pthread 取消的交互方面有什么进展吗?

最近,GNUC库使用DWARF2展开用于pthread取消,因此C++异常和pthread取消清理处理程序都通过公共(public)调用框架展开过程调用,该过程在必要时调用自动对象的析构函数。然而,据我所知,仍然没有指定(POSIX)线程和C++之间交互的标准,并且可能希望可移植的应用程序应该假设从取消清理上下文中抛出异常与调用longjmp,并且取消具有非平凡析构函数的实时自动对象的线程也是未定义的行为。是否有任何正在进行的标准化流程来处理这种交互,或者它是否可以预期在未来很长一段时间内未定义?C++11在其线程支持中是否有任何类似于POSIX线程取消的概念?

c++ - 如何使用 OpenSSL 将 {D,E,N} RSA key 扩展为 {D,E,N,p,q,etc.}?

我有一个由公共(public)和私有(private)因素以及模数D组成的RSAkey。(我目前正在生成key并将其与JavaScript库一起使用。)我想使用相同的key来执行加密和解密打开SSL。我可以将我的因子插入OpenSSLRSAkey并且一切正常,但我想让OpenSSL计算它使用的辅助因子(如果可用)来加速操作。我不确定从{D,E,N}回到这些因素在数学上是否可能,但如果是的话,我想知道如何让libopenssl做到这一点。谢谢! 最佳答案 从secretd导出p和q的算法非常简单和快速,尽管是概率性的。在Chapter

c++ - Matlab Mex 库生命周期

有谁知道matlabmex库的生命周期是什么?具体来说,我对以下内容感兴趣:有没有办法在调用之前强制加载库?库是单例还是加载了多个实例?在调用之前是否有任何用于初始化的Hook?当卸载库进行清理时,是否有可以拦截的析构函数Hook/信号?我在这里和网上进行了广泛的搜索,但找不到这些问题的答案。我的问题在初始化方面有一些性能成本,我想尽可能避免这种情况,而无需编写服务。 最佳答案 MEX文件会保持加载状态,直到您清除它(clearmyMexFun或clearmex)或退出MATLAB。对于预加载,我所能建议的是在没有输入或nop等效输

c++ - 创建线程时设置 CPU 亲和性

我想创建一个C++11线程,我希望它在我的第一个核心上运行。我发现pthread_setaffinity_np和sched_setaffinity可以改变线程的CPUaffinity并将其迁移到指定的CPU。但是,此关联规范会在线程运行后发生变化。如何创建具有特定CPU亲和性的C++11线程(cpu_set_t对象)?如果在初始化C++11线程时无法指定亲缘关系,如何使用C中的pthread_t来实现?我的环境是Ubuntu上的G++。感谢一段代码。 最佳答案 很抱歉成为这里的“流言终结者”,但是设置线程亲和性非常重要,随着我们使用