두 버전 (ght이이 정보를 제공) 간의 g ++의 암시 적 LIBRARY_PATH 수정에 문제가 있습니다. LIBRARY_PATH를 사용자 정의 라이브러리가있는 단일 로컬 디렉토리로 설정합니다. 그러나 g ++의 한 버전 (버전 A라고 함)이 올바르게 링크 된 것으로 밝혀졌으며, 다른 버전 (버전 B)이 시스템 기본값에 링크되었으므로 바람직하지 않습니다. 외관상으로, 전화 번호부의 순서는 뒤섞이고 나의 명세는 적당하게 존중되지 않았다. 이 버전과 호환되지는 않지만 LIBRARY_PATH not used before /usr/lib anymore in gcc 4.2 and later?과 (와) 비슷한 문제입니다.gcc 사양 파일 줄 디코딩
어쨌든 나는 두 개의 다른 버전의 사양 파일을 살펴볼 생각이 들었다 (g++ -dumpspecs > specs
을 통해 얻음). 그런 다음 다른 버전 (A)의 specs 파일과 함께 g ++ (B; * un * 예상 수정본을 생성)의 버전을 실행하는 것이 여전히 수정을 내고 LIBRARY_PATH가 이제는 그대로 사용하는 지 확인하려고했습니다. 나는 그것을 (예상 버전 A)!
본인은 다음 줄에 일어날 이상한 수정의 위치를 추적 :
. !m64 !m32;.:../lib64 m64 !m32;.:../lib32 !m64 m32;
LIBRARY_PATH의 설정/수정에 영향을 미치는 것으로 나타나는 게다가, 나는 슬프게도이 행이 무엇을 의미하는지 단서가 없다. 그러므로 여러분 중 일부가이 줄을 "해독하여"의미가 무엇인지 설명하여 내 요구 사항에 따라 수정할 수 있기를 바랍니다.
감사합니다.
감사합니다. 매우 도움이 될 것입니다. g ++ ver. A는 실제로 데비안에서 제공되는 시스템 전체의 컴파일러입니다. 다른 하나 (버전 B)에는 다중 사용자 시스템에서 설치 및 버전 처리를 관리하는 데 사용되는 easybuild라는 시스템이 있습니다 (잠재적으로 상당히 다른 도구 및 버전 필요). 나는 전반적인 설정이이 사이트에 매우 구체적이라고 생각한다. 그래서 나는 거기에 자세히 들어가고 싶지 않았다."-L"을 사용하고 싶지 않습니다. (정의에 따라) 명시 적으로 설정해야하며 "안전한"기본 연결을 보장하기 위해 "LIBRARY_PATH"를 사용하는 것이 일반적이고 투명한 솔루션이라고 생각했습니다. – Shadow
데비안 제공 GCC는 라이브러리 검색 경로를 변경하는 패치로 구축됩니다. http://anonscm.debian.org/viewvc/gcccvs/branches/sid/gcc-4.6/debian/patches/gcc-multiarch.diff?revision=5904&view=markup 및 http://anonscm.debian.org/viewvc/ gcccvs/branches/sid/gcc-4.6/debian/patches/gcc-multilib64.diff? revision = 4969 & view = 마크 업 –