#pragma comment (lib,“xxx.lib”) Linux에서 동등합니까?
라는 정적 라이브러리 파일 이 있습니다. 라이브러리에 연결하는 데 libunp.a
사용할 수 있습니다 gcc -lunp xx
.
#pragma comment(lib,"xxx.lib")
Microsoft C / C ++ 컴파일러에 라이브러리를 포함 하도록 지시 하는 데 사용할 수 있습니다 . Linux / GCC에서 어떻게 할 수 있습니까?
단순한; 당신은 할 수 없습니다. GCC에는 이와 동등한 것이 없습니다. -l을 gcc 매개 변수로 지정하고, 링커 스크립트를 작성하고,을 호출하고 ld
, 911을 호출하십시오.
그런 pragma가 말이되는 것도 아닙니다. 연결 단계에서 라이브러리를 지정해야합니다. 이러한 정보는 단순히 번역 단위 내부에 속하지 않습니다. 번역 단위는 연결 단계 없이도 전처리, 컴파일 및 조립할 수 있습니다. Visual Studio에서 사용하는 도구 모음은 이것이 브레인 데드이고 항상 연결을 수행 하기 때문에이를 허용합니다 .
지루한 타이핑을 저장하고 프로젝트를위한 MakeFile을 만들고 싶을 수도 있습니다 : GNU Make Manual
pragma에 대한 GCC 매뉴얼 페이지에 동등한 pragma에 대한 언급이없는 것 같습니다 .
GCC가 소스 코드에서 링크를 지원하지 않는 이유 중 하나는 올바른 링크 가 링크 순서에 따라 달라진다 는 것입니다 . 컴파일 순서에 관계없이 연결 순서가 올바르게 발생하는지 확인해야합니다. 그렇게 많은 작업을 수행하려는 경우 명령 줄 (또는 다른 방법으로)에 링커 인수를 전달하는 것이 좋습니다.
연결 단계에서 라이브러리를 지정해야합니다. 이러한 정보는 단순히 번역 단위 내부에 속하지 않습니다. 번역 단위는 연결 단계 없이도 전처리, 컴파일 및 조립할 수 있습니다.
단순히 #pragma comment(lib,"xxx.lib")
소스 파일에 있다고해서 컴파일러가이를 사용한다는 의미는 아닙니다. 사실, 주석으로 들어가고 이후 링커에서 사용됩니다. * nix와 크게 다르지 않습니다.
이 GCC 플래그를 사용하여 알 수없는 pragma에 대한 오류를 생성합니다. 컴파일러가 이해하는지 빠르게 알려줍니다.
-Werror=unknown-pragmas
참조 URL : https://stackoverflow.com/questions/1685206/pragma-commentlib-xxx-lib-equivalent-under-linux
'Development Tip' 카테고리의 다른 글
git : safecrlf를 비활성화하지 않고 "경고 : CRLF가 LF로 대체됩니다"를 제거하려면 어떻게해야합니까? (0) | 2020.12.31 |
---|---|
디버거가 비동기 메서드에서 예외를 중단 / 중지하지 않음 (0) | 2020.12.31 |
cmath 대 math.h (및 유사한 c 접두어 대 .h 확장 헤더) (0) | 2020.12.31 |
CentOS 7.2의 Docker : kernel : unregister_netdevice : lo가 무료가되기를 기다리고 있습니다. (0) | 2020.12.31 |
Python에서 인스턴스 재 분류 (0) | 2020.12.31 |