创建 AES C 文件的共享库时链接出错
Error in linking while creating a shared library of AES C file
创建 AES 共享库时遇到错误。使用以下命令:
gcc -Wall Test1.c x64/libSESDAPI.a -fPIC -lssl -lcrypto
gcc -shared -o libfile.so a.out -nostartfiles
我收到以下错误:
/usr/bin/ld: a.out(.eh_frame) 中的错误;不会创建 .eh_frame_hdr table。
/usr/bin/ld:libfile.so:版本化符号`AES_cbc_encrypt@@OPENSSL_1.0.0'
没有符号版本部分
/usr/bin/ld: final link failed: Nonrepresentable 输出部分
collect2:错误:ld 返回了 1 个退出状态
我是共享库的新手,所以请帮忙。
编辑:我已经编辑并添加了 lcrypto 和 lssl
Edit2:通过在第一个命令中添加-c,上述错误现已解决。但是现在使用 python 访问 .so 文件会出现新的错误
操作系统错误:./libfile.so:未定义的符号:SDSCListDevs
请说出为什么会出现这个错误。
您应该从 object 文件而不是可执行程序创建共享库。
您还需要 link 使用 SSL 库。
要使用的命令:
# Compile the source file, generate object file
gcc -Wall Test1.c -c -fPIC
# Link object file with libraries to create the shared object
gcc -shared -fPIC -o libfile.so Test1.o x64/libSESDAPI.a -lssl -lcrypto
创建 AES 共享库时遇到错误。使用以下命令:
gcc -Wall Test1.c x64/libSESDAPI.a -fPIC -lssl -lcrypto
gcc -shared -o libfile.so a.out -nostartfiles
我收到以下错误:
/usr/bin/ld: a.out(.eh_frame) 中的错误;不会创建 .eh_frame_hdr table。
/usr/bin/ld:libfile.so:版本化符号`AES_cbc_encrypt@@OPENSSL_1.0.0'
没有符号版本部分/usr/bin/ld: final link failed: Nonrepresentable 输出部分 collect2:错误:ld 返回了 1 个退出状态
我是共享库的新手,所以请帮忙。
编辑:我已经编辑并添加了 lcrypto 和 lssl
Edit2:通过在第一个命令中添加-c,上述错误现已解决。但是现在使用 python 访问 .so 文件会出现新的错误
操作系统错误:./libfile.so:未定义的符号:SDSCListDevs
请说出为什么会出现这个错误。
您应该从 object 文件而不是可执行程序创建共享库。
您还需要 link 使用 SSL 库。
要使用的命令:
# Compile the source file, generate object file
gcc -Wall Test1.c -c -fPIC
# Link object file with libraries to create the shared object
gcc -shared -fPIC -o libfile.so Test1.o x64/libSESDAPI.a -lssl -lcrypto