草庐IT

c++ - 如何将源代码附加到 Eclipse CDT 上的库

在EclipseCDT上,有人知道如何通过其源代码附加外部库吗?我想要做的是单击元素(例如函数、变量)名称,以便Eclipse打开其源文件的相应部分(或首先打开头文件,然后通过再次单击头文件打开源代码)。在Eclipse的Java模式下是可能的。谢谢。 最佳答案 创建一个库项目。将外部库添加到其中。打开库项目属性,通过C/C++General/Paths和Symbols/Source位置链接源文件夹。打开主项目属性并将库项目添加到项目引用。如果您做的一切正确,打开声明操作(F3)将打开一个函数源。干杯,最大

c++ - 分析由于库故障而发生的崩溃的回溯

在我的应用程序中,我设置了信号处理程序来捕获段错误并打印bactraces。当进程启动时,我的应用程序加载了一些插件库。如果我的应用程序因段错误而崩溃,这是由于主要可执行二进制文件中的错误,我可以通过以下方式分析回溯:addr2line-Cif-e./myapplication0x4...它准确地显示了函数和source_file:line_no但是如何分析崩溃是否是由于插件错误导致的,如下面的回溯?/opt/myapplication(_Z7sigsegvv+0x15)[0x504245]/lib64/libpthread.so.0[0x3f1c40f500]/opt/myappli

c++ - 如何避免 LLVM 的 Support CommandLine 泄漏库参数?

我一直在为我的一种语言开发编译器,想利用LLVM支持库CommandLine处理参数解析。我只添加了两个简单的声明:staticcl::optOutputFilename("o",cl::desc("Outputfilename"),cl::value_desc("filename"));staticcl::listInputFilenames("i",cl::desc("Inputfiles"),cl::value_desc("filenames"),cl::OneOrMore);然后我在main中添加通常的调用:intmain(intargc,char*argv[]){cl::Pa

c++ - FFMPEG: ‘PIX_FMT_BGR24’ 未在此范围内声明

我正在使用FFMPEGAPI构建一个简单的解码应用程序。我知道OpenCV中有可用的解决方案,但出于特定原因我避免使用它。由于我是FFMPEG的新手(对这个社区也是如此),我想知道我在构建FFMPEG时是否犯了任何错误。编译器:我正在使用gcc5.3.0进行编译和构建。以下是我遵循的步骤:我已经使用以下配置构建了FFMPEG库:./configure--prefix=/home/dep/ffmpeg/install/--pkg-config-flags=--static--enable-gpl--disable-yasm我的编译命令是针对应用程序的:g++-std=c++11-I/ho

c++ - 为什么我应该在 c++ 而不是 c 中设置插件接口(interface)

由于我的previousquestions我问自己:为插件系统设置C++接口(interface)是否有用?以下几点反对它:不同编译器及其版本之间没有共同的ABI,内存中的对象没有共同的布局没有直接类导出。您必须导出工厂和析构函数。如果你的对象被其他对象持有,问题就会出现delete它们,例如智能指针。STL的不同实现,你不能传递std::list到插件使用不同版本的库,例如Boost如果您将自己限制在C++语言的其余部分,您几乎会以“C子集”告终。使用C++有什么要点吗?Qt-Toolkit是如何解决上述问题的?备注:我主要指的是Linux系统。不过,我对其他平台上的解决方案很感兴趣

c++ - 请为 VC++ 2008 推荐一个好的加密库

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭5年前。Improvethisquestion我正在做一个小项目,需要你的帮助。以下是详细信息:我的项目是在VC++2008中我需要将一些关键资源文件包与我的项目exe一起以加密形式存储在运行exe时,我想即时解密和使用这些文件(不将解密文件存储在临时位置)有问题的文件是二进制文件项目小而简单加密可以是简单的或适度安全的我正在为一个简单的项目寻找一个加密库/sdk/toolkit,该库应该有以下要求它应该小巧且易

c++ - 为什么在 OpenGL 中显式管理矩阵更好?

最近我一直在用OpenGL搞乱,我遇到了允许OpenGL管理View/模型/投影矩阵或自己管理它们之间的分歧,无论是使用您自己的矩阵实现还是诸如此类的库作为GLM。我已经看到很多大型项目都有自己的相机管理(即管理自己的平移、旋转等)。我明白为什么它有助于确保您完全控制系统,但除此之外,它似乎需要做很多工作才能获得边际yield。为什么自己管理比使用内置的OpenGL函数更好?显然这是在着色器管道的上下文中,而不是固定函数默认值。(这适用于任何3D库)。 最佳答案 (顺便说一句,OpenGLES2没有转换管理工具,因此在某些情况下您别

c++ - 在 Windows 上获取 C\C++ 中的所有环境变量

C\C++中main函数的签名可以包含3个参数:main(intargc,char*argv[],char*envp[])第三个是环境变量。我正在VS10下编译一个库,因此我没有main()。如何获得与char*envp[]中类型完全相同的环境变量?我宁愿不使用.NET来减少依赖性,也许有一天会开放可移植性。 最佳答案 GetEnvironmentStrings返回一个(只读!)指向进程环境block开始的指针。该block是一个连续的C风格字符串,包含以null结尾的key=value对。该block由一个额外的空终止符结束。为了

c++ - 通过网络发送指向静态函数的指针是否安全?

我正在考虑我必须在C++中实现的一些RPC代码,我想知道通过网络将它发送到相同的二进制代码是否安全(以及在哪些假设下)(假设它们完全相同并且它们是在相同的体系结构上运行)。我想虚拟内存应该在这里发挥作用。我问它只是出于好奇,因为它在任何情况下都是一个糟糕的设计,但我想知道它在理论上是否可行(以及它是否可扩展到其他类型的指向静态数据的指针,而不是函数程序可能包括)。 最佳答案 一般来说,出于多种原因,它并不安全,但在有限的情况下它会起作用。首先,我假设您在协议(protocol)中使用某种签名或加密来确保数据流的完整性;否则,您已经遇

c++ - 最小的 boost.org 包含仅使用一个子库

我想使用boostsmart_ptr库。我不想要任何其他库,因为我试图让我的项目保持小型化。当我只添加smart_ptr库时,我收到了关于找不到config.hppheader的投诉。我添加了那个文件,然后我的编译器说它找不到assert.hppheader。之后我放弃了,只包含了整个boost库。如果我想使用其中一个子库(例如,smart_ptr),是否必须使用一组最小的boost库?我使用的#include语句是:#include我的目录结构是这样的MyProject/main.cppMyLib/...Mylibrarycodeishere...boost/boost/smart_