草庐IT

dynamically-generated

全部标签

c - GNU-make 4.运行 "Loading Dynamic Objects"的例子

ThelatestversionofGNU-Makehttp://www.gnu.org/software/make/providesmanyadvancedcapabilities,includingmanyusefulfunctions.(...)Onsystemswhichsupportdynamicallyloadableobjects,youcanwriteyourownextensioninanylanguage(whichcanbecompiledintosuchanobject)andloadittoprovideextendedcapabilities...http:

c++ - Linux 上的 RTLD_LOCAL 和 dynamic_cast

我们有一个插件,它由应用程序中的一些共享库构成,我们需要在应用程序运行时对其进行更新。出于性能原因,我们在卸载旧插件之前加载并开始使用新插件,并且仅当所有线程都使用旧插件完成时才卸载它。由于新插件和旧插件的库中有相同的符号,我们使用dlopen()和RTLD_LOCAL。如果我们不小心从内部函数调用旧插件中的符号的新插件。插件的一个库对由插件的另一个库创建的对象执行dynamic_cast()。这适用于HP-UX、AIX、Solaris和Windows,但不适用于Linux。据我所知,这是因为所有这些操作系统(编译器)都使用类的名称来比较类型(在dynamic_cast()中),但Li

c++ - Qt 造物主/Linux : setting compiler/linker option -ldl for dynamic libraries

我都被谷歌搜索出来了!感谢任何可以帮助我的人......我已经构建了test.so并希望使用dlfcn.h中定义的dlopen()、dlsym()等动态调用它我可以编译我在命令行上调用的程序(main.cpp)没有错误g++main.cpp-ldl-omyprog没有-ldl开关,我得到错误:undefinedreferencedlopen()。另外,如果-ldl开关没有放在g++参数列表中的源文件之后,那么我会得到同样的错误。我的问题是:如何在QtCreator中编译我的main.cpp?QtCreator报同样的错误:undefinedreferencedlopen()我试过直接将

linux - 推荐哪一个: using static lib vs dynamic lib (shared object)

我正在使用Linux中的应用程序。它同时支持静态和动态(.so)版本从性能的角度来看,用户应该使用哪个版本?该应用程序执行需要数小时CPU时间的计算任务。使用一个库优于另一个库的任何其他优势?谢谢 最佳答案 从纯性能的角度来看:共享对象被编译为PIC(位置无关代码),理论上在某些架构(包括x86)上可能比普通代码效率稍低。但是,我认为这不会产生任何真正的影响。从任何其他点使用共享对象,它比静态库有太多的优点,它只是更好的选择。 关于linux-推荐哪一个:usingstaticlibvs

linux - 从 elf 文件的 DYNAMIC 部分删除条目

我有第3方库A,它需要一些库B。A链接到二进制文件,二进制文件链接静态版本B。因此,不再需要B的动态版本。A不在我的控制之下,我无法重新编译它。因此,我想从A的DYNAMIC部分删除NEEDEDlibA条目。有没有办法用objcopy或其他工具做到这一点? 最佳答案 Isthereawaytodoitwithobjcopyorothertool?尽管elfsh,我不知道有任何现有工具可以做到这一点或许可以。编写一个C程序来做你想做的事情是很简单的:libA.so的.dynamic部分是一个固定大小记录的表(typeElfW(Dyn)

c++ - C++/gcc/linux 中的 Continuations/Coroutines/Generators

背景:我试图通过提出这个玩具问题来弄清楚如何实现延续/协程/生成器(不管下面的名称是什么)。环境是gcc4.6和linux3.0x86_64上的C++11。不可移植很好,但不允许使用外部库(boost.coroutine、COROUTINE等)。我认为longjmp(3)和/或makecontext(2)和friend可能会有所帮助但不确定。描述:下面的玩具解析器应该解析等长的as和bs序列。即((a+)(b+))+使得第二个括号产生式的长度等于第三个。当它找到一个产生式(例如aaabbb)时,它会输出它找到的a的数量(例如3)。代码:#include#includeusingname

python - SWIG + setup.py : ImportError: dynamic module does not define init function (init_foo)

我正在尝试用swig在test.cpp中包装函数foo。我有一个headerfoo.h,其中包含函数foo的声明。test.cpp依赖于位于/usr/lib64ex.h和共享对象文件libex.so/我关注了blogpostfromhere.我可以使用pythonsetup.pybuild_ext--inplace构建模块。但是,当我尝试导入它时,出现以下错误,我不确定我遗漏了什么,因为大多数其他出现此错误的问题都没有使用setup.py文件。下面是我目前拥有的示例。导入_foo时的错误:>>>import_fooImportError:dynamicmoduledoesnotdefi

编译器 : Understanding assembly code generated from small programs

我正在自学编译器的工作原理。我通过阅读GCC从小型64位Linux程序生成的代码的反汇编来学习。我写了这个C程序:#includeintmain(){for(inti=0;i使用objdump后我得到:00000000004004d6:4004d6:55pushrbp4004d7:4889e5movrbp,rsp4004da:c745f800000000movDWORDPTR[rbp-0x8],0x04004e1:eb0bjmp4004ee4004e3:c745fc00000000movDWORDPTR[rbp-0x4],0x04004ea:8345f801addDWORDPTR[rb

php - symfony2 Controller 的功能测试 : How to generate a route

在symfony2Controller上,我想测试一个Controller,它返回一个Response对象。我的测试类扩展自WebTestCase。我使用static::createClient()来获取可操作的客户端。我的问题是在我当前安装的虚拟主机上调用正确的路由。$client->getContainer()->get('router')->generate('my_route',array(),true)生成一个以localhost作为主机的路由。但这不起作用,因为我将myproject.local作为主机。$client->getContainer()->get('kerne

PHP 启动 : Unable to load dynamic library `curl.so` Ubuntu

PHPWarning:PHPStartup:Unabletoloaddynamiclibrary'/usr/lib/php/20131226/curl.so'-/usr/lib/php/20131226/curl.so:undefinedsymbol:zend_unset_propertyinUnknownonline0我正在使用Ubuntu14.04LTS和PHPv5.6同一台机器上还有其他版本php5和php7,但是php5.6已经启用。我尝试通过安装cURLsudoapt-getinstallphp5.6-curl现在我得到了Unabletoloaddynamiclibraryc