首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将OpenSSL引擎与第三方动态库连接

如何将OpenSSL引擎与第三方动态库连接
EN

Stack Overflow用户
提问于 2022-04-12 22:07:19
回答 1查看 234关注 0票数 0

我有一个作为OpenSSL引擎的自定义共享对象文件,它可以很好地处理p线程。我试图使用第三方线程库,而不是使用线程。但是,在链接和运行引擎时,我得到了一个分段错误。我只是不知道为什么。我预感到我与新构建的动态库的链接是不正确的,

以下是我所做的

  1. 创建动态库的Makefile CC = GCC CFLAGS = -Wall -fPIC -g -O3 -MD LDFLAGS = -shared OBJ =uTER.o all: libuthread.so libuthread.so:$(OBJ) $(LD) -shared -o $(@) -shared -o $(OBJ) clean: rm -f *.o *d libuthread.so -include *.d %.o:%.c $(CC) $-o $@ -c $< (
  2. libuthread.so库复制到/lib/x86_64-linux-gnu/
  3. 编译OpenSSL引擎的OpenSSL gcc -g -fPIC -c -fomit-框架-指针测试工程.c gcc -g -shared -o libtestengine.so rsa-engine.o .o rsa/ rsa/bignum.o rsa/erc.o -Wl,-Bstatic -Wl,-Bdynamic -lcrypto -luthread libtestengine.so rsaEngine.so
  4. 编译后,$ldd rsaEngine.so显示以下内容: linux-vdso.so.1 (0x00007ffded367000) libcryp.so.1.1 => / => /opt/openssl/lib/libcryp.so.so.1.1 (0x00007f895c5fa000) libuthread.so => /lib/x86_64 -linux-gnu/libuten.so (0x00007f895c3f4000) libc.so.6 => //x86_64-linux-gnu/libc.so.6(0x0000007f895c02a000)libdso.2 => /lib/x86_64-linux-gnu/libdl.so.2 ( => /x86_64-linux/ libdl.so.2 )-linux-gnu/libpthread.so.0 (0x00007f895bc09000) /ld 64/ld-linux-x86-64.so.2 (0x00007f895cd56000)

我使用gdb来找出导致segmentation fault的原因,并且我发现uthread_join()在某个时候失败了。有人能告诉我我做错了什么吗?

注:我用一个简单的程序检查了图书馆,图书馆工作得很好。

EN

Stack Overflow用户

发布于 2022-04-13 01:56:02

我只是不知道为什么。

可能有以下几个原因:

  1. 代码中的线程错误(它碰巧不会导致系统libp线程库崩溃,而是会导致uthread.o崩溃,不管它是什么),
  2. uthread.o中的一个错误,它是由您的测试而不是通过您尝试过的简单程序暴露出来的,
  3. 其他地方的窃听器。

我们无法用所提供的信息来判断。

您的第一步应该是在调试器下运行程序,找出它崩溃的位置,然后找出原因。

我预感到我与新构建的动态库的链接是不正确的。

我有预感你的预感是错的。你的链接似乎没有什么问题。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71849654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档