2014-05-20 2 views
5

나는 Getting started 단계에 따라 구글의 ligjingle를 구축하기 위해 노력하고있어, 나는 "빌드"섹션에 도달했습니다.골드 링커 ld.gold의 -plugin : 알 수없는 옵션

나는 실행하면 하나

ninja -C out/Debug 

또는

ninja -C out/Release 

나는 다음과 같은 오류 얻을

: I posted the output in pastebin too, if you prefer

ninja -C out/Debug 
ninja: Entering directory `out/Debug' 
[3/2606] LINK genmacro 
FAILED: cc -Wl,-z,now -Wl,-z,relro -Wl,--fatal-warnings -pthread -Wl,-z,noexecstack -fPIC -B/home/nschoe/workspace/webrtc/jingle/trunk/third_party/binutils/Linux_x64/Release/bin -Wl,--disable-new-dtags -m64 -Wl,--icf=none -fuse-ld=gold -Wl,--gdb-index -o genmacro -Wl,--start-group obj/third_party/yasm/source/patched-yasm/tools/genmacro/genmacro.genmacro.o -Wl,--end-group 
/home/nschoe/workspace/webrtc/jingle/trunk/third_party/binutils/Linux_x64/Release/bin/ld.gold: -plugin: unknown option 
/home/nschoe/workspace/webrtc/jingle/trunk/third_party/binutils/Linux_x64/Release/bin/ld.gold: use the --help option for usage information 
collect2: error: ld returned 1 exit status 
[3/2606] CC obj/net/third_party/nss/ssl/libssl.sslauth.o 
ninja: build stopped: subcommand failed. 

내가

시도를

하고 있어요 :

--plugin PLUGIN    Load a plugin library 
--plugin-opt OPTION   Pass an option to the plugin 

그래서 내가지고있어 오류가 어딘가에 코드에서, ld.gold은 내가 "연주되었습니다 -plugin xxx 오히려

--plugin xxx보다 호출되기 때문이다 가정 "와 grep -Hr과"플러그인 "을 조합하여 문제를 찾으려고했지만 지금까지는 아무 것도 발견하지 못했습니다. Makefile의 어딘가에 숨겨져 있다고 가정합니다. -plugin 옵션 --plugin을해야한다는

+0

여러 줄을 주석 처리하려면 4 줄까지 들여 씁니다. 한 줄에 주석을 달려면 양쪽에 하나의 백틱으로 둘러 쌉니다. –

+0

좋습니다. 죄송합니다. – nschoe

+0

사과 할 필요가 없습니다. 코드 서식 지정을 위해 여기에서하던 일을 쉽고 즐겁게 생각할 수는 없습니다. –

답변

8

는 문제가되지 않습니다. ld.gold 두 옵션 중 하나를 수락하면 두 옵션을 모두 허용합니다.

그러나 그것은 단지 binutils의 빌드가 되어 --enable-plugins로 구성한 경우 둘 중 하나를 사용할 수 있습니다. Documentation.

ld.gold --help | grep "plugin"을 실행하면 --plugin은 인식 옵션 인 임을 나타냅니다.

따라서 문제는이 나타납니다 : - 당신은 당신의 PATH에서 발견되는 첫 번째 ld.gold 을 실행하는 ld.gold --help | grep "plugin"을 실행하면

/home/nschoe/workspace/webrtc/jingle/trunk/third_party/binutils/Linux_x64/Release/bin/ld.gold--enable-plugins

로 구성되지 않았습니다. 아마도 배포판의 /usr/bin/ld.gold 일 것입니다.당신 실행하여 찾을 수 있습니다 :

which ld.gold 

어쨌든, 그것은 /home/nschoe/workspace/webrtc/jingle/trunk/third_party/binutils/Linux_x64/Release/bin/ld.gold 하지이며 이 경우 cd/home/nschoe/workspace/webrtc/jingle/trunk/third_party/binutils/Linux_x64/Release/bin/ 실행에 --enable-plugins

로 구성되었습니다 ld.gold 것입니다 :

./ld.gold -plugin 

LL 얻을 : 당신이 소스에서 이러한 제 3 자 binutils를 다시 할 수없는 경우

./ld.gold: -plugin: unknown option 

당신이 단지를 복사 할 경우 다음이 아마 작동 이상적인 솔루션이 that Documentation

에 따라 /home/nschoe/workspace/webrtc/jingle/trunk/third_party/binutils 를 재 구축하는 문제를 해결하려면 시스템 ld.gold이 타사 binutils에있는 것보다 which에서 발견되거나 제 3자를 삭제하거나 이름을 바꾸고 시스템에 symlink 으로 바꿉니다. 이러한 해킹 중 하나가 으로 인해 외부로 파손될 가능성이 있습니다.

+0

그 설명에와 주셔서 감사합니다. Linux_x64/Release/bin 버전에는 플러그인 지원이 없습니다 (이것은 매우 독창적입니다.이 코드는 다운로드하여 (빌드 한) Google 코드이므로 파일을 링크하는 데 사용됩니다.) .) 어쨌든 나는 플러그인 지원으로 binutils를 재구성하려고하는 문서를 따라 가고있다. 실패 할 경우 /usr/bin/ld.gold에 대한 심볼릭 링크를 만들려고 시도 할 것이다. 어쨌든 다시 감사 드리며 내가 관리하는지 다시 알려 드리겠습니다. – nschoe

+0

그래, 정말 고마워. 너 정말로 도와 줬어. ''' 참조 : : 오류 : 알 수없는 명령 행 옵션 '-Wno-' ''' 을하지만 확실히 감사 ld.gold 내 문제를 해결 나는 오류로 는 여전히 컴파일 할 수 없습니다. (새로운 오류가 나오는 이유는 무엇입니까?) – nschoe

+0

와우, 훌륭한 설명 –