g++ -Wall -g -c main.cpp -lGL -lGLU -lglfw3 -lX11 -lXxf86vm -lXrandr -lpthread -lXi - 你能解释一下这个命令吗?

g++ -Wall -g -c main.cpp -lGL -lGLU -lglfw3 -lX11 -lXxf86vm -lXrandr -lpthread -lXi - Could you explain this command?

我遇到了一个非常具体的问题,但我是 C++ 的新手。你能解释一下命令的每一部分吗?

如果可以的话,也请向我解释一下,将这些选项粘贴到 CodeLite 中的什么位置

当然可以:

  • g++:这是来自 GCC(GNU 编译器集合)的 C++ 编译器。
  • -Wall:打开所有通常的警告,即编译器会警告很多事情,虽然在技术上不是错误,但很可疑。
  • -g:生成调试信息,你知道的,可以使用调试器。
  • -c:仅编译,将生成目标文件,而不是可执行文件。您需要 运行 之后 linker 构建实际的可执行文件。
  • main.cpp: 你的源文件。
  • -lGL -lGLU -lglfw3 -lX11 -lXxf86vm -lXrandr -lpthread -lXi:那些是图书馆。每个 -lXXX 都会 link 到一个名为 libXXX.solibXXX.a.
  • 的库

请注意,您的命令按原样没有意义,因为您将 -c 设置为仅编译,而不是 linking,但是您正在添加库,这些库仅用于linking。所以这些库被简单地忽略了。

有关详细信息,请参阅 man g++info g++http://gcc.gnu.org