如何在 g + + 中包含到库的路径

我试图在 makefile 中包含额外库的路径,但是我不知道如何让编译器使用该路径。到目前为止,我已经:

g++ -g -Wall testing.cpp fileparameters.cpp main.cpp -o test

我想包括

/data[...]/lib

因为 testing.cpp 包含来自该库的文件。

编辑: 不是到库的路径。只是到包含的文件的路径。我的错。

285041 次浏览

要指定搜索(二进制)库的目录,只需使用 -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

这些编译器标志(除其他外)也可以在 GNU GCC 命令选项手册中找到:

在 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来源。 你应该可以走了。