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

Fin*_*uss 0 c++ g++ codelite

我有一个非常具体的问题,但我对 C++ 还比较陌生。你能解释一下命令的每个部分吗?

如果可以的话,还请解释一下在 CodeLite 中将这些选项粘贴到哪里

在此输入图像描述

rod*_*igo 5

当然:

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

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

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