두 개의 오브젝트 파일 모두 심볼 (기능) "foobar"를 정의하고 있습니다.두 개의 오브젝트 파일을 공통 심볼로 연결
명령 줄 호출에서 제공하는 obj 파일 순서를 따르고 항상 첫 번째 파일에서 심볼을 가져오고 나중에는 가져 오지 않도록 링커에 알릴 수 있습니까?
AFAIK "weak"pragma는 공유 라이브러리에서만 작동하지만 오브젝트 파일에서는 작동하지 않습니다.
나는 flexibel 때문에 알고있는 많은 C/C++ 컴파일러/링커/운영 체제 조합에 대해 답하고 많은 컴파일 (sun studio, intel, msvc, gcc, acc)을 사용하십시오.
오류가보고 같은 기호가 1.o' '에 정의되어있을 것이며, '2.o' (둘 다'libsome.a'에 있습니다),이 라이브러리에 대해 정적으로 링크하려고합니다. –
@dmak_k : 잘 모르겠습니다. 왜 그런 짓을 한거야? 두 가지 일이 발생할 수 있습니다. 1) 링커는 정의를 모두 찾고 오류를보고 할 수 있습니다. 2) 발견 된 첫 번째 기호로 기호를 해석 할 수 있습니다.이 경우 오브젝트 파일이 라이브러리에 표시된 순서에 따라 달라집니다. 대부분의 경우 (2)가 모호하고 버그를 찾기가 어려울 수 있으므로 (1)을 원합니다. 물론 시도해 볼 수 있습니다. – Clifford