programing

GCC에 대한 "-Wl, option"과 "-Xlinker option" 구문 사이에 차이점이 있습니까?

minimums 2023. 6. 7. 22:24
반응형

GCC에 대한 "-Wl, option"과 "-Xlinker option" 구문 사이에 차이점이 있습니까?

몇 가지 구성 파일을 살펴보았는데 두 파일이 모두 사용되는 것을 보았습니다(다른 아키텍처에서도 마찬가지임).Linux 박스에서 GCC를 사용하는 경우 링커에 옵션을 전달하기 위한 두 구문 사이에 차이점이 있습니까?

GCC 설명서를 보면 제가 알 수 있는 한 거의 동일하게 설명되어 있습니다.

부터man gcc:

-Xlinker 옵션

옵션을 링커에 옵션으로 전달합니다.이를 사용하여 GCC가 인식하는 방법을 모르는 시스템별 링커 옵션을 제공할 수 있습니다.

별도의 인수를 사용하는 옵션을 전달하려면 -Xlinker를 옵션에 한 번, 인수에 한 번 두 번 사용해야 합니다.예를 들어 -assert 정의를 전달하려면 -Xlinker -assert -Xlinker 정의를 작성해야 합니다.-Xlinker "-assert definitions"를 쓰는 것은 작동하지 않습니다. 이는 전체 문자열을 단일 인수로 전달하기 때문입니다. 이는 링커가 기대하는 것이 아닙니다.

GNU 링커를 사용할 때 일반적으로 별도의 인수로 전달하는 것보다 옵션=값 구문을 사용하여 링커 옵션에 인수를 전달하는 것이 더 편리합니다.예를 들어 -Xlinker -Map -Xlinker output.map 대신 -Xlinker -Map=output.map을 지정할 수 있습니다.다른 링커는 명령줄 옵션에 대해 이 구문을 지원하지 않을 수 있습니다.

-Wl,옵션

옵션을 링커에 옵션으로 전달합니다.옵션에 쉼표가 포함된 경우 쉼표에서 여러 옵션으로 분할됩니다.이 구문을 사용하여 인수를 옵션에 전달할 수 있습니다.

예를 들어 -Wl, -Map, output.map은 -Map output.map을 링커에 전달합니다.GNU 링커를 사용할 때 -Wl,-Map=output.map에서도 동일한 효과를 얻을 수 있습니다.

보시다시피, 유일한 차이점은-Wl다음과 같은 쉼표를 사용하여 여러 인수를 지정할 수 있습니다.-Wl,-rpath,/my/libs당신이 할 수 없는 것.-Xlinker반면에,-Xlinker좀 더 자기주장이 강할 수도 있습니다.골라보세요.다른 컴파일러도 확인합니다(nvcc생각나, 그리고.clang)에서 구문에 동의하는 사용자가 있는지 확인하고 중요한 경우 이동성에 사용합니다.

언급URL : https://stackoverflow.com/questions/7221141/is-there-a-difference-between-the-wl-option-and-xlinker-option-syntax-for

반응형