Code Monkey home page Code Monkey logo

Comments (6)

zhengshuxin avatar zhengshuxin commented on June 12, 2024

我在Linux下测试了以下过程是可以的:

$cd hird_party/mbedtls-2.7.12/library;
$export SHARED=1; make
$cp *.so ~/acl/lib_acl_cpp/samples/ssl/
$cd ~/acl/lib_acl_cpp/samples/ssl/ssl_server/
$vi ssl_server.cpp  # 把其中中的宏定义  "#define USE_ONE" 注释掉,以便使用三个独立的 so 库
$make
$./t.sh
然后会显示:
mbedtls_conf.cpp(405), mbedtls_dll_load: ../libmbedcrypto.so loaded!
mbedtls_conf.cpp(407), mbedtls_dll_load: ../libmbedx509.so loaded!
mbedtls_conf.cpp(410), mbedtls_dll_load: ../libmbedtls.so loaded!
listen: 0.0.0.0:2443 ...
event_limit: fdsize(1024) too small, extend it
event_limit: max fdsize: 10240
acl_inet_listen: listen 0.0.0.0:2443 ok
ssl_server.cpp(374), proc_on_init: load cert ok, crt: ../ssl_crt.pem
ssl_server.cpp(383), proc_on_init: set key ok, key: ../ssl_key.pem

from acl.

dengbq1234 avatar dengbq1234 commented on June 12, 2024

deng@ubuntu:/work/opensource/acl-master/lib_acl_cpp/samples/ssl/ssl_server$ ll ..
总用量 768
drwxrwxr-x 15 deng deng 4096 7月 21 09:09 ./
drwxrwxr-x 89 deng deng 4096 7月 14 09:12 ../
drwxrwxr-x 2 deng deng 4096 7月 20 09:15 aio_client/
drwxrwxr-x 2 deng deng 4096 7月 19 09:18 aio_server/
drwxrwxr-x 2 deng deng 4096 7月 14 09:12 client/
drwxrwxr-x 2 deng deng 4096 7月 18 17:40 https_client/
drwxrwxr-x 2 deng deng 4096 7月 18 17:40 https_proxy/
drwxrwxr-x 2 deng deng 4096 7月 14 09:12 https_request/
drwxrwxr-x 2 deng deng 4096 7月 14 09:12 https_request_static/
drwxrwxr-x 2 deng deng 4096 7月 18 17:40 https_server/
-rwxrwxr-x 1 deng deng 402160 7月 21 09:09 libmbedcrypto.so*
-rwxrwxr-x 1 deng deng 190776 7月 21 09:09 libmbedtls.so*
-rwxrwxr-x 1 deng deng 97608 7月 21 09:09 libmbedx509.so*
-rw-rw-r-- 1 deng deng 448 7月 14 09:12 Makefile
-rw-rw-r-- 1 deng deng 155 7月 14 09:12 README.md
drwxrwxr-x 2 deng deng 4096 7月 20 14:54 server/
drwxrwxr-x 2 deng deng 4096 7月 21 09:11 ssl_client/
drwxrwxr-x 2 deng deng 4096 7月 18 17:40 ssl_client2/
-rw-rw-r-- 1 deng deng 1054 7月 20 14:53 ssl_crt.pem
-rw-rw-r-- 1 deng deng 1704 7月 20 14:53 ssl_key.pem
drwxrwxr-x 2 deng deng 4096 7月 21 09:16 ssl_server/
drwxrwxr-x 2 deng deng 4096 7月 18 17:40 ssl_server2/
-rw------- 1 deng deng 1675 7月 20 14:43 sslserver.key
-rw-rw-r-- 1 deng deng 4561 7月 20 14:43 sslserver.pem
deng@ubuntu:
/work/opensource/acl-master/lib_acl_cpp/samples/ssl/ssl_server$ ./t.sh
acl_dlopen(36): open(../libmbedx509.so) error(Success)
mbedtls_conf.cpp(357), load_all_dlls: load ../libmbedx509.so error ../libmbedx509.so: undefined symbol: mbedtls_threading_gmtime_mutex
mbedtls_conf.cpp(505), load: load mbedtls error
load ../libmbedtls.so error
deng@ubuntu:/work/opensource/acl-master/lib_acl_cpp/samples/ssl/ssl_server$ nm ../libmbed
libmbedcrypto.so libmbedtls.so libmbedx509.so
deng@ubuntu:
/work/opensource/acl-master/lib_acl_cpp/samples/ssl/ssl_server$ nm ../libmbedcrypto.so |grep mbedtls_threading_gmtime_mutex
0000000000255ba0 D mbedtls_threading_gmtime_mutex
deng@ubuntu:~/work/opensource/acl-master/lib_acl_cpp/samples/ssl/ssl_server$ nm ../libmbedx509.so |grep mbedtls_threading_gmtime_mutex
U mbedtls_threading_gmtime_mutex
mbedtls生成的库有问题

from acl.

dengbq1234 avatar dengbq1234 commented on June 12, 2024

mbedtls是按你说的方法,在third_part/mbedtls27/library/下重新生成的。
Uploading 123.png…

from acl.

dengbq1234 avatar dengbq1234 commented on June 12, 2024

from acl.

zhengshuxin avatar zhengshuxin commented on June 12, 2024

看来在Ubuntu下编译的mbedtls的三个 so 不能很好地动态加载,不过我找到一个变通的方式,通过以下方式就可以解决了:

$mkdir mbedtls-2.7.12/build
$cd mbedtls-2.7.12/build
$cmake ..; make -j 4
$cd ../lib
$cp libmbedtls_all.so libmbedcrypto.so
$cp libmbedtls_all.so libmbedx509.so
$cp libmbedtls_all.so libmbedtls.so

然后把上面的三个 so(libmbedcrypto.so, libmbedx509.so, libmbedtls.so)拷贝到 SSL 程序的运行目录下,就可以正常加载了。
这个 CMakeLists.txt 是我之前写的,把mbedtls里所有的源文件编译成一个统一的库(libmbedtls_all.so)。

from acl.

dengbq1234 avatar dengbq1234 commented on June 12, 2024

多谢大神的及时答复,终于可以加载成功了。

from acl.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.