>  Q&A  >  본문

c++ - 기본 함수가 실행되기 전에 segfault가 발생하고 gdb가 디버깅할 수 없습니다. 이는 아마도 g++ 컴파일 매개변수와 관련이 있을 것입니다.

c++를 사용하여 openssl을 패키징해 보세요. 먼저 정적 라이브러리 libtest.a를 작성하세요. -lssl -lcrytpo -lpthread에 따라 다릅니다.
디렉토리 구조:

테스트 파일은 client.cpp, server.cpp 두 개가 있습니다.
실행 프로그램을 컴파일하는 데 사용되는 명령은 다음과 같습니다.
g++ -g -o2 -fpic client.cpp -I../include -L ../lib -ltest -shared -u -lssl -lcrypto -lpthread -o client
컴파일 성공;
실행 오류, gdb 디버깅에서 기본 기능이 시작되기 전에 충돌이 발생한 것으로 나타났습니다.
보충: 모든 주요 기능 코드를 주석 처리하면 위의 컴파일이 작동하지 않습니다. 컴파일 시 -shared 매개변수를 제거하면 프로그램이 정상적으로 종료됩니다.

仅有的幸福仅有的幸福2736일 전597

모든 응답(1)나는 대답할 것이다

  • 天蓬老师

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

    정적 라이브러리를 컴파일하기 위해 작성한 코드에 문제가 있습니다.

    회신하다
    0
  • 취소회신하다