이것을 실행 중인데 cmake
인식할 수 없는 플래그( -rdynamic
)가 링커에 전달되어 오류가 발생합니다.
이 플래그를 어디서 가져온 것인지 알 수 없으므로 필터링하고 싶습니다.
를 지정할 수 있으므로 명령줄 인수를 읽고 잘못된 인수를 필터링한 다음 결과를 실제 링커에 다시 전달하는 프로그램을 -DCMAKE_LINKER=<linker>
설정하고 싶습니다 .<linker>
나는 사용하고 있지만 awk '{gsub("-rdynamic", "");print}'
stdin을 입력으로 만들고 ld를 출력으로 만드는 방법을 모르겠습니다.
답변1
스크립트 는 문자열 " "과 일치 bash
하는 매개변수를 무시하고 -rdynamic
다른 매개변수를 배열에 추가하여 해당 매개변수를 반복합니다. 인수가 부족해지면 ld
필터링된 목록을 사용하여 실행됩니다.
#!/bin/bash
declare -a finalopts
finalopts=()
for o in "$@"; do
if [ "$o" = "-rdynamic" ] ; then
continue
fi
#add all other options to the list
finalopts+=("$o")
done
exec ld "${finalopts[@]}"