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.so
或 libXXX.a
. 的库
请注意,您的命令按原样没有意义,因为您将 -c
设置为仅编译,而不是 linking,但是您正在添加库,这些库仅用于linking。所以这些库被简单地忽略了。
有关详细信息,请参阅 man g++
、info g++
和 http://gcc.gnu.org。
我遇到了一个非常具体的问题,但我是 C++ 的新手。你能解释一下命令的每一部分吗?
如果可以的话,也请向我解释一下,将这些选项粘贴到 CodeLite 中的什么位置
当然可以:
g++
:这是来自 GCC(GNU 编译器集合)的 C++ 编译器。-Wall
:打开所有通常的警告,即编译器会警告很多事情,虽然在技术上不是错误,但很可疑。-g
:生成调试信息,你知道的,可以使用调试器。-c
:仅编译,将生成目标文件,而不是可执行文件。您需要 运行 之后 linker 构建实际的可执行文件。main.cpp
: 你的源文件。-lGL -lGLU -lglfw3 -lX11 -lXxf86vm -lXrandr -lpthread -lXi
:那些是图书馆。每个-lXXX
都会 link 到一个名为libXXX.so
或libXXX.a
. 的库
请注意,您的命令按原样没有意义,因为您将 -c
设置为仅编译,而不是 linking,但是您正在添加库,这些库仅用于linking。所以这些库被简单地忽略了。
有关详细信息,请参阅 man g++
、info g++
和 http://gcc.gnu.org。