草庐IT

c++ - 从现有目标文件创建共享库

我的IDE中有一个项目。我需要为它创建一个共享库以用于扩展。我不想使用共享库设置复制该项目。有什么方法可以使用我现有项目中的目标文件(.o)构建共享库吗?据我了解,我可以为此编写一个makefile。 最佳答案 我假设您使用的是某种Unix,并且可能正在使用GNU工具链。在这种情况下,要创建一个合适的共享库,您需要在创建共享库之前使用与位置无关的代码标志(-fpic或-fPIC)编译您的代码。除非你的.o文件已经用这些标志编译,否则你很可能不会得到一个有效的共享库。如果它们已经针对位置独立代码进行了编译,通常的g++-shared.

c++ - C++ 的压缩库

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭7年前。Improvethisquestion我正在阅读有关程序压缩的内容,我开始创建一个新的简单项目,一个zipper(只是一个zipper,而不是一个unzipper),但我只找到了zLib,它是用于C的。我知道C库可以是在C++中使用,但我喜欢使用C++库。有谁知道可以推荐一个好的吗?最好的问候。

c++ - 如何使用boost库获取系统环境变量?

我在Windows和MacOS上工作,我想获取环境变量。如何使用boost库获取系统环境变量?.Net是否有等同于System.Environment.GetEnvironmentVariable()的东西? 最佳答案 不需要Boost。使用std::getenv来自,这是一个标准的C++函数。 关于c++-如何使用boost库获取系统环境变量?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/que

c++ - 是否值得前向声明库类?

我刚刚开始使用他们的教程学习Qt。我目前正在学习教程7,我们在其中创建了一个新的LCDRange类。LCDRange(.cpp文件)的实现使用了Qt的QSlider类,所以在.cpp文件中是#include但在标题中是一个前向声明:classQSlider;根据Qt,Thisisanotherclassictrick,butonethat'smuchlessusedoften.Becausewedon'tneedQSliderintheinterfaceoftheclass,onlyintheimplementation,weuseaforwarddeclarationofthecla

c++ - 从 exprtk 编译 win32 库

我想从http://partow.net/programming/exprtk/index.html编译一个win32.dll或.lib数学表达式库。最简单的方法是什么?我正在使用MSVC++。代码只有一个.hpp,里面有所有的代码。每次编译我的程序都需要很长时间,因为它还编译了exptrk.hpp文件(超过1,000kB的代码)。 最佳答案 当您拥有大型基于header的库时,您面临的编译速度慢的问题很常见-但模板实际上并不是代码,无法独立编译成二进制文件。一种解决方案是使用预编译头文件——据我所知,VC++会自动执行此操作。这节

c++ - 如何部署依赖动态库的应用程序?

我正在开发一个使用GStreamer库的应用程序。为了简化部署,我想将所有GStreamer库收集到一个本地包中。为此,我编写了一个执行以下操作的小脚本:递归遍历依赖项(使用otool-L)将所有依赖项复制到本地目录使所有依赖路径相对于@executable_path(使用install_name_tool)(如果你有兴趣可以看看Rubyscript。)但是,我现在在gst_init调用中看到运行时错误:(process:22843):GLib-GObject-CRITICAL**:gtype.c:2458:initializationassertionfailed,useg_type

c++ - 在从动态库加载的函数中使用 OpenMP 的棘手错误

我的问题涉及在动态库中存储的C++函数中使用OpenMP。让我们考虑以下代码(在shared.cpp中):#include"omp.h"#includeextern"C"{inttest(){intN=omp_get_max_threads();#pragmaompparallelnum_threads(N){std::cout我使用g++编译此代码:g++-fopenmp-shared-fPIC-oshared.soshared.cpp。然后,要使用test函数,我有以下程序(main.cpp):#include#includeintmain(){void*handle=dlopen

c++ - 如何导航到 Clion 链接库中的源代码?

我有一个链接多个静态库的项目(例如libModule.a)。当我尝试导航到模块库中的类时,Clion只将我带到header声明并在那里停止导航。我希望能够深入了解模块库中函数的定义。 最佳答案 我遇到了同样的问题,这就是我所做的。在Clion中,我通过在帮助|中输入#com.jetbrains.cidr.execution.debugger来启用调试日志记录。调试日志设置,重现问题,然后查看创建的idea.log(帮助|显示日志)。在日志中,它显示了它找不到的源的完整路径。我盒子上的源不在同一个地方,所以通过在适当的目录中创建一个符

c++ - 缺少 boost 库

我的VSC2013编译器要我链接到libboost_system-vc120-mt-s-1_55.lib但boost\stage\lib中不存在该文件。我只有以vc120-mt-1_55.lib和vc120-mt-gd-1_55.lib结尾的lib文件我用构建了boostbootstrapb2我需要做什么来获取上面的库?编辑:这有效b2variant=debug,releaselink=staticruntime-link=static 最佳答案 您应该构建static版本的boost库。看这个问题Howtobuildboostst

c++ - 闭源库包括 boost 分发

我正在使用一个闭源库(由Activfinancial提供),该库在其API中包含一个boost分发,包括一些boost头文件和boost库文件。我还在我现有的代码库中使用了Boost,我需要从我现有的代码中使用Activ。几点我可以封装我对Activ的使用,这样整个Activ部分相当于我编写的一个类,不会公开任何Activ的header这个单一的头文件没有使用任何boostanything通过这种方式,我可以确保我的代码的Activ部分使用Activ的BoostHPP文件,并且我的代码使用我的Boost的HPP文件我担心的是链接。如何确保我的Activ依赖代码链接到Activ的Boos