Что такое файлы ответов ld? - PullRequest
0 голосов
/ 18 января 2020

У меня довольно длинная clang++ команда компиляции (сгенерирована), и я пытаюсь отладить ошибку. Команда слабо связана с рядом библиотек, включая мою библиотеку. Итак, где-то в команде есть это:

... -weak_library "path-to-lib1" -weak_library "path-to-lib2" -weak_library "path-to-mylib" -rpath "some-path" ...

Команда завершается неудачно с ошибкой:

ld: file not found: -rpath

Теперь, если я полностью удаляю -weak_library "path-to-mylib" или копирую "mylib" в другое место и предоставить новый путь, компиляция удалась. Это не имеет смысла для меня.

После передачи -v я вижу такой вывод:

...
Arguments passed via response file: "path-to-mylib"
(end of response file)
ld: file not found: -rpath
clang: error: linker command failed with exit code 1 (use -v to see invocation)

И команда полностью пропускает аргумент "путь к mylib", оставляя только ... -weak_library -rpath ..., который генерирует ошибку выше.

Я не смог найти никакой официальной информации о том, какие файлы ответов находятся в clang. Для чего они используются и почему к моей библиотеке относятся ld?

...