Я разрабатываю программу на C++ под Linux. Я хочу поставить некоторые вещи (конкретно, файлы LLVM битового кода, но это не важно) в библиотеках, поэтому я хочу следующую структуру каталогов:Как найти "мой" каталог lib?
/somewhere/bin/myBin
/somewhere/lib/myLib.bc
Как найти Lib каталога? Я попытался вычислить относительную часть от argv[0]
, но если /somewhere
находится в моем PATH
, argv[0]
будет содержать только myBin
. Есть ли способ получить этот путь? Или мне нужно установить его во время компиляции?
Как это делает GNU autotools? Что произойдет, если я поставлю опцию --prefix
на номер ./configure
?
Edit: Слово библиотека немного вводит в заблуждение в моем случае. Моя библиотека состоит из биткода LLVM, поэтому он не является фактическим (общим) объектным файлом, а просто файлом, который я хочу открыть из моей программы. Вы можете думать об этом как о изображении или текстовом файле.
Если ваша библиотека статична, просто добавьте -L your/lib/dir; если он динамический, у вас может быть LD_LIBRARY_PATH и т. д. –
Как я уже сказал, библиотека является файлом биткода LLVM, поэтому это не поможет. Подумайте об этом как о изображении или текстовом файле, который я хочу прочитать из своей программы. –