Heim  >  Fragen und Antworten  >  Hauptteil

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.

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.

仅有的幸福仅有的幸福2685 Tage vor541

Antworte allen(1)Ich werde antworten

  • 天蓬老师

    天蓬老师2017-05-16 13:25:33

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

    Antwort
    0
  • StornierenAntwort