【发布时间】:2016-08-13 05:35:01
【问题描述】:
对于入门级程序,我目前正在编译
g++ manip.c -o manip -lglfw3 -lX11 -lXxf86vm -lXrandr -lpthread -ldl -lXinerama -lXcursor -lGLEW
这是一个非常耗时的过程,需要反复试验找出哪些标志是必要的,谷歌搜索“未定义的引用”,复制粘贴我遇到的每个标志,然后一个接一个地删除标志,直到我删除那些我不需要。
对于正在学习绳索的初学者,在教程中编译示例程序(没有关于如何编译的说明),有没有办法自动链接程序可能需要的所有内容?也许是一种移动库的方法,这样它们就不必显式链接了?
如果没有,有没有办法简化标志添加过程? (我可以想象随着程序复杂性的增加,所有标志的命令都会变得非常长。)
【问题讨论】:
-
了解如何使用 makefile 或像 cmake 这样的 makefile 生成器
-
您应该查看实际的构建系统,而不是手动编写命令行。
-
g++ manip.c -o manip `pkg-config glfw3 glew --cflags --libs`? -
@genpfault: Upstream manual 确实推荐
pkg-config如果你不使用像 CMake 这样的元构建系统。 -
当我使用您粘贴的命令 genpfault 以及您链接的上游手册中的静态和共享命令时,TBBle,数百?未定义的引用错误结果。