У меня довольно длинная 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
?