我试图在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机器上.
编辑:不是图书馆的路径.只是包含的文件.我的错.
我已经回顾了问题如何正确使用include指令和C++ #include语义,并没有解决这个问题 - 当我输入标题时,SO也没有提出其他建议......
如果有的话,写作的好处是什么:
#include "../include/someheader.h"
#include "../otherdir/another.h"
Run Code Online (Sandbox Code Playgroud)
与仅使用普通文件名相比:
#include "someheader.h"
#include "another.h"
Run Code Online (Sandbox Code Playgroud)
或者没有' ..' 的相对名称:
#include "include/someheader.h"
#include "otherdir/another.h"
Run Code Online (Sandbox Code Playgroud)
我看到的问题是:
../dir1/include/../../include/../dir2/../include/header.h".我能看到的唯一优点是,虽然你不需要移动文件,但是你可以在不使用' -I'指令来查找标题的情况下逃脱,但是失去灵活性,以及子子编译的复杂性 - 目录等似乎超过了好处.
那么,我是否忽视了一项福利?
感谢您的投入.我认为大家一致认为,使用"......"的符号没有任何重大好处,我忽略了.一般来说,我喜欢"somewhere/header.h"符号; 我确实在新项目中使用它.我正在努力的是新事物.
其中一个问题是,有各种套头的,往往带有前缀,如rspqr.h,rsabc.h,rsdef.h,rsxyz.h.这些都与rsmp目录中的代码有关,但有些标题位于其中rsmp,其他标题位于中央include目录中,该目录中没有子目录rsmp.(并重复代码的其他各个方面;在多个位置都有标题,需要其他位代码随机使用.)移动内容是一个主要问题,因为多年来代码变得如此复杂.并且makefile与-I提供哪些选项不一致.总而言之,这是一个悲伤的故事,讲述了几十年来不那么温和的疏忽.在不破坏任何东西的情况下解决所有问题将是一项漫长而乏味的工作.
我正在按照本教程学习OpenGL,但由于编译器无法找到其中一个头文件,因此编译时遇到问题.
这是我正在尝试编译的文件:
#include <glad/glad.h>
#include <GLFW/glfw3.h>
int main() {
return 0;
}
Run Code Online (Sandbox Code Playgroud)
要编译,我正在使用
$ gcc -o sandbox sandbox.cpp -lGL -lGLU -lglut
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
sandbox.cpp:1:23: fatal error: glad/glad.h: No such file or directory
#include <glad/glad.h>
^
compilation terminated.
Run Code Online (Sandbox Code Playgroud)
我按照这个wiki 的前两个部分来安装OpenGL和库.
我认为问题是错误的编译命令或我的OpenGL安装中的缺陷.