这个问题在这里已经有了答案:buildinga.sothatisalsoanexecutable(3个答案)关闭7年前。这是理论问题。我知道也许最佳实践是使用共享库。但我遇到了这个问题,似乎无法在任何地方找到答案。如何构造代码并编译成ELF格式的C/C++程序,以便用dlopen()加载?例如,如果一个可执行文件包含某个函数inttest()的实现,我想从我的程序中调用这个函数(最好是获取函数的结果),如果可能的话,我该怎么做呢?在伪代码中我可以这样描述它:ELF可执行源:voidmain(){inti=test();printf("Returned:%d",i);//Prints"R
这个问题在这里已经有了答案:buildinga.sothatisalsoanexecutable(3个答案)关闭7年前。这是理论问题。我知道也许最佳实践是使用共享库。但我遇到了这个问题,似乎无法在任何地方找到答案。如何构造代码并编译成ELF格式的C/C++程序,以便用dlopen()加载?例如,如果一个可执行文件包含某个函数inttest()的实现,我想从我的程序中调用这个函数(最好是获取函数的结果),如果可能的话,我该怎么做呢?在伪代码中我可以这样描述它:ELF可执行源:voidmain(){inti=test();printf("Returned:%d",i);//Prints"R
我在ELF共享库中有很多代码仅在库初始化期间使用(从静态初始化器调用)。如果我将这段代码放在它自己的部分(或者它可以放在.init部分),我可以使用__attribute__((section(".mysection"))),是否有加载库后强制将此部分换页的方法?Thisquestion是相关的,但结论是内核在内存不足时会将未使用的页面换出,因此无需显式这样做。但是,我在一个嵌入式环境中工作,其中内存非常宝贵,而且从磁盘(慢速USB闪存驱动器)分页代码的成本很高。因此,我宁愿明确地刷新这段代码,我知道它永远不会被再次使用,而不是让内核决定刷新一些最终可能需要调回的其他代码。我确定我记得
我在ELF共享库中有很多代码仅在库初始化期间使用(从静态初始化器调用)。如果我将这段代码放在它自己的部分(或者它可以放在.init部分),我可以使用__attribute__((section(".mysection"))),是否有加载库后强制将此部分换页的方法?Thisquestion是相关的,但结论是内核在内存不足时会将未使用的页面换出,因此无需显式这样做。但是,我在一个嵌入式环境中工作,其中内存非常宝贵,而且从磁盘(慢速USB闪存驱动器)分页代码的成本很高。因此,我宁愿明确地刷新这段代码,我知道它永远不会被再次使用,而不是让内核决定刷新一些最终可能需要调回的其他代码。我确定我记得
我正在寻找一种方法来制作现有的专有ELF二进制文件,这些二进制文件链接到特定版本的系统库,可移植。对于可移植性,我的意思是使可执行文件在具有相同处理器架构和兼容系统内核的每个系统上工作,而不必拥有库的源代码(如果没有源代码就没有办法,那也没关系).到目前为止我想到了两种可能性,但我不知道它们是否完全可能,如果是,该选择哪种:搜索所有链接库及其依赖项,并将它们包含在二进制文件的子目录中,并将库路径更改为该目录。将库静态地重新链接到二进制文件到一个大的可执行文件(如果程序不根据校验和验证自身)。许可不是问题,因为我不想分发创建的可移植程序,它仅供私有(private)使用。感谢您的回答。
我正在寻找一种方法来制作现有的专有ELF二进制文件,这些二进制文件链接到特定版本的系统库,可移植。对于可移植性,我的意思是使可执行文件在具有相同处理器架构和兼容系统内核的每个系统上工作,而不必拥有库的源代码(如果没有源代码就没有办法,那也没关系).到目前为止我想到了两种可能性,但我不知道它们是否完全可能,如果是,该选择哪种:搜索所有链接库及其依赖项,并将它们包含在二进制文件的子目录中,并将库路径更改为该目录。将库静态地重新链接到二进制文件到一个大的可执行文件(如果程序不根据校验和验证自身)。许可不是问题,因为我不想分发创建的可移植程序,它仅供私有(private)使用。感谢您的回答。
将PE二进制文件转换为ELF二进制文件的最佳工具是什么?以下是这个问题的简要动机:假设我有一个简单的C程序。我使用linux的gcc编译它(这给出了ELF),并使用'i586-mingw32msvc-gcc'为Windows编译了它(这给出了一个PE二进制文件)。我想分析这两个二进制文件的相似之处,使用Bitblaze的静态分析工具-vine(http://bitblaze.cs.berkeley.edu/vine.html)现在vine对PE二进制文件的支持不是很好,所以我想转换PE->ELF,然后继续我的比较/分析。由于所有分析都必须在Linux上运行,所以我更喜欢在Linux上运
将PE二进制文件转换为ELF二进制文件的最佳工具是什么?以下是这个问题的简要动机:假设我有一个简单的C程序。我使用linux的gcc编译它(这给出了ELF),并使用'i586-mingw32msvc-gcc'为Windows编译了它(这给出了一个PE二进制文件)。我想分析这两个二进制文件的相似之处,使用Bitblaze的静态分析工具-vine(http://bitblaze.cs.berkeley.edu/vine.html)现在vine对PE二进制文件的支持不是很好,所以我想转换PE->ELF,然后继续我的比较/分析。由于所有分析都必须在Linux上运行,所以我更喜欢在Linux上运
我有一个奇怪的异常,说错误的ELF类,但包装器设置正确。使用此SDK从比利时身份证发行商官方网站读取比利时身份证:http://eid.belgium.be/en/binaries/beid-sdk-3.5.3-ubuntu-9.10-i686-6193_tcm147-94066_tcm406-114986.tgz$uname-a#UsingNetBeansIDE7.3inUbuntu12.1064-bitLinuxsun-M14xR23.5.0-25-generic#39-UbuntuSMPMonFeb2518:26:58UTC2013x86_64x86_64x86_64GNU/Li
我有一个奇怪的异常,说错误的ELF类,但包装器设置正确。使用此SDK从比利时身份证发行商官方网站读取比利时身份证:http://eid.belgium.be/en/binaries/beid-sdk-3.5.3-ubuntu-9.10-i686-6193_tcm147-94066_tcm406-114986.tgz$uname-a#UsingNetBeansIDE7.3inUbuntu12.1064-bitLinuxsun-M14xR23.5.0-25-generic#39-UbuntuSMPMonFeb2518:26:58UTC2013x86_64x86_64x86_64GNU/Li