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

发布于 2024-11-10 05:18:04 字数 299 浏览 2 评论 0原文

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

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

并且我想包含路径,

/data[...]/lib

因为 testing.cpp 包含该库中的文件。另外,我在 Linux 机器上。

编辑:不是库的路径。只是包含该库中的头文件。我的不好。

I am trying to include the path to extra libraries in my makefile, but I can't figure out how to get the compiler to use that path. So far I have:

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

and I want to include the path to

/data[...]/lib

because testing.cpp includes files from that library. Also, I'm on a Linux machine.

EDIT: Not a path to a library. Just to header files from that library that were included. My bad.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

吃兔兔 2024-11-17 05:18:04

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

-L/data[...]/lib

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

-lfoo  # (links libfoo.a or libfoo.so)

指定要搜索的目录对于 include 文件(与库不同!),您使用 -I

-I/data[...]/lib

所以我认为您想要的是类似

g++ -g -Wall -I/data[...]/lib testing.cpp fileparameters.cpp main.cpp -o test

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

To specify a directory to search for (binary) libraries, you just use -L:

-L/data[...]/lib

To specify the actual library name, you use -l:

-lfoo  # (links libfoo.a or libfoo.so)

To specify a directory to search for include files (different from libraries!) you use -I:

-I/data[...]/lib

So I think what you want is something like

g++ -g -Wall -I/data[...]/lib testing.cpp fileparameters.cpp main.cpp -o test

These compiler flags (amongst others) can also be found at the GNU GCC Command Options manual:

回心转意 2024-11-17 05:18:04

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

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -I/path/to/your/folder")

In your MakeFile or CMakeLists.txt you can set CMAKE_CXX_FLAGS as below:

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -I/path/to/your/folder")
咆哮 2024-11-17 05:18:04

或者,您可以设置环境变量。
假设您使用的是 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 编写并获取它。
你应该可以走了。

Alternatively you could setup environment variables.
Suppose you are using bash, then in ~/.bashrc, write

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

and source it with source ~/.bashrc.
You should be good to go.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文