>source

c 프로그램을 컴파일 할 때 라이브러리를 연결하는 두 가지 방법이 있음을 알고 있습니다.

  • 정적 : 라이브러리는 실행 파일 내에 "포함"됩니다.
  • 동적 : 라이브러리가 파일 시스템에 있어야합니다. 실행 파일은이 라이브러리에 따라 다릅니다.

그러나 우리가 c 프로그램을 컴파일 할 때 말할 방법이 있습니까?

  • 이 라이브러리는 실행 파일 내에 정적으로 포함되어야합니다.
  • 이것은 동적으로 연결되어야합니까?

감사

  • 답변 # 1

    예를 들어 다음을 사용할 수 있습니다.

    gcc file1.c file2.c fileN.c ... -lfoo -lbar -lbaz --static -labc -lbcd -lcde
    
    

    이 경우 foo, bar, baz는 동적 라이브러리로 사용 가능한 경우 동적으로 연결되고 그렇지 않으면 정적입니다.

    abc, bcd, cde는 정적으로 링크됩니다.

  • 답변 # 2

    그것도 사용할 수 있습니다

    gcc MyProg.c -Wl,-Bstatic -libS1 -libS2 -Wl,-Bdynamic -libD1 -o MyProg.exe

관련 자료

  • 이전 robotframework의 콘솔 출력에 시간 표시
  • 다음 reactjs - JavaScript 바꾸기는 그룹을 사용할 때 정규식이 완전히 일치 할 때만 실행됩니다