c++ – Ein Segfault tritt auf, bevor die Hauptfunktion ausgeführt wird, und gdb kann nicht debuggen. Dies hängt wahrscheinlich mit den g++-Kompilierungsparametern zusammen.
仅有的幸福
仅有的幸福 2017-05-16 13:23:33
0
1
637

Versuchen Sie, OpenSSL mit C++ zu packen. Schreiben Sie zunächst eine statische Bibliothek libtest.a. Hängt von -lssl -lcrytpo -lpthread ab.
Verzeichnisstruktur:

Es gibt zwei Testdateien: client.cpp, server.cpp
Der zum Kompilieren des ausführbaren Programms verwendete Befehl lautet wie folgt:
g++ -g -o2 -fpic client.cpp -I../include -L ../lib -ltest -shared -u -lssl -lcrypto -lpthread -o client
Kompilierung erfolgreich;
Ausführungsfehler, beim GDB-Debugging wurde festgestellt, dass es vor dem Start der Hauptfunktion abgestürzt ist.
Ergänzung: Kommentieren Sie alle Hauptfunktionscodes, und die obige Kompilierung funktioniert nicht. Entfernen Sie beim Kompilieren den Parameter -shared. Das Programm wird dann normal beendet.

仅有的幸福
仅有的幸福

Antworte allen(1)
Peter_Zhu

自己写的用来编译静态库的代码有问题。

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage