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

mrs*_*mmr 86 g++ path

我试图在makefile中包含额外库的路径,但我无法弄清楚如何让编译器使用该路径.到目前为止我有:

g++ -g -Wall testing.cpp fileparameters.cpp main.cpp -o test
Run Code Online (Sandbox Code Playgroud)

我想要包括路径

/data[...]/lib
Run Code Online (Sandbox Code Playgroud)

因为testing.cpp包含来自该库的文件.另外,我在linux机器上.

编辑:不是图书馆的路径.只是包含的文件.我的错.

Ern*_*ill 150

要指定搜索(二进制)库的目录,只需使用-L:

-L/data[...]/lib
Run Code Online (Sandbox Code Playgroud)

要指定实际的库名称,请使用-l:

-lfoo  # (links libfoo.a or libfoo.so)
Run Code Online (Sandbox Code Playgroud)

要指定一个目录来搜索包含文件(与库不同!),您可以使用-I:

-I/data[...]/lib
Run Code Online (Sandbox Code Playgroud)

所以我认为你想要的是类似的东西

g++ -g -Wall -I/data[...]/lib testing.cpp fileparameters.cpp main.cpp -o test
Run Code Online (Sandbox Code Playgroud)

  • @Fred,是的,g ++理解[一大堆环境变量](http://gcc.gnu.org/onlinedocs/gcc/Environment-Variables.html),它可用于控制包含路径,库路径等. (4认同)
  • 基本上在需要它之前的某个地方; 例如,`-I`应该出现在.cpp文件名之前. (2认同)
  • @Youda008 Capital ell:图书馆的搜索路径。Capital Eye:包含文件的搜索路径。Small ell:要链接的库的名称。 (2认同)

Kar*_*ali 7

在 MakeFile 或 CMakeLists.txt 中,您可以设置 CMAKE_CXX_FLAGS 如下:

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -I/path/to/your/folder")
Run Code Online (Sandbox Code Playgroud)