Пожалуйста, простите меня, если я упустил что-то очевидное здесь. Я разрабатываю некоторые приложения для другой платформы, и все мои собственные библиотеки установлены в/app/lib. Чтобы облегчить это, я указываю путь библиотеки времени выполнения для каждого из моих двоичных файлов как «/ app/lib». Это прекрасно работает; однако при связывании (хотя этот каталог пуст) существует путь «/ app/lib» в моей среде сборки. Я использую NetBeans, что может усложнять вопросы, но я вижу, что «-Wl, -rpath/app/lib» передается gcc.RPATH должен существовать во время компиляции
Хотелось бы избежать необходимости создания пустого «/ app/lib» в моей среде сборки, но я не хочу изменять структуру файла на моей целевой платформе. Если я удалю/app/lib из среды сборки, я получаю ошибку при создании, что ее невозможно найти. Есть ли способ указать путь поиска во время выполнения без необходимости его существования во время соединения?
'-Wl, -rpath/app/lib' является неправильной опцией spec, должен быть' -Wl, -rpath -Wl,/app/lib' (возможно, есть и другие способы, но это работает и не работает требуйте директорию на хосте сборки). Вы неправильно скопировали свой вариант сборки здесь? – Mat
Я вернулся и дважды проверял, но я подтвердил, что вызов строится как «gcc -o ... -Wl, -rpath/app/lib ...». NetBeans создает этот make-файл, поэтому, если он недействителен, может потребоваться исправление на их конце. Тем не менее, процесс сборки делает успешным, если/app/lib существует в моей среде сборки, а полученный двоичный файл использует путь во время выполнения. – LousyG
Странно ... Я, хотя это не сработало. Я посмотрю, смогу ли я воспроизвести его позже, кажется немного странным. – Mat