Как мне включить путь к библиотекам в g++
Я пытаюсь включить путь к дополнительным библиотекам в мой make-файл, но я не могу понять, как заставить компилятор использовать этот путь. пока что у меня есть:
g++ -g -Wall testing.cpp fileparameters.cpp main.cpp -o test
и я хочу указать путь к
/data[...]/lib
потому что testing.cpp включает в себя файлы из этой библиотеки. Кроме того, я на машине Linux.
РЕДАКТИРОВАТЬ: не путь к библиотеке. Просто для файлов, которые были включены. Виноват.
3 ответа
Чтобы указать каталог для поиска (двоичных) библиотек, вы просто используете -L
:
-L/data[...]/lib
Чтобы указать фактическое имя библиотеки, вы используете -l
:
-lfoo # (links libfoo.a or libfoo.so)
Чтобы указать каталог для поиска включаемых файлов (отличается от библиотек!), Вы используете -I
:
-I/data[...]/lib
Поэтому я думаю, что вы хотите что-то вроде
g++ -g -Wall -I/data[...]/lib testing.cpp fileparameters.cpp main.cpp -o test
В вашем MakeFile или CMakeLists.txt вы можете установить CMAKE_CXX_FLAGS, как показано ниже:
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -I/path/to/your/folder")
В качестве альтернативы вы можете настроить переменные среды. Предположим, вы используете
bash
, затем в
~/.bashrc
, записывать
C_INCLUDE_PATH="/data/.../lib/:$C_INCLUDE_PATH" ## for C compiler
CPLUS_INCLUDE_PATH="/data/.../lib/:$CPLUS_INCLUDE_PATH" ## for Cpp compiler
export C_INCLUDE_PATH
export CPLUS_INCLUDE_PATH
и источник его с
source ~/.bashrc
. Тебе должно быть хорошо.