![(16.04)从源安装,无配置文件](https://linux22.com/image/1147685/%EF%BC%8816.04%EF%BC%89%E4%BB%8E%E6%BA%90%E5%AE%89%E8%A3%85%EF%BC%8C%E6%97%A0%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6.png)
我应该从某个来源安装一些适配软件;这个软件叫做 XMBF (http://www.stefanmeinel.com/software/XMBF/)。源代码附带一个 makefile,但没有配置文件。手册说我很可能需要根据我使用的机器按顺序编辑 Makefile 中的“INCPATH”变量;我试过了,但仍然收到错误,例如这个:
/usr/include/glibmm-2.4/glibmm/ustring.h:24:26: fatal error:
glibmmconfig.h: No such file or directory
compilation terminated.
Makefile:279: recipe for target 'main.o' failed
make: *** [main.o] Error 1
这表明 .cpp 无法找到头文件。这是否意味着我必须转到每个 .cpp 文件并编辑头文件路径?或者有更简单的方法可以做到这一点?我对这些东西还很陌生,所以我非常感激任何可以帮助我了解从源代码安装如何工作的参考资料。或者这是从“二进制文件”安装的?我不确定其中的区别。
谢谢!
-雅各布
答案1
可能最简单的事情就是让它pkg-config
为您完成工作:
INCPATH := $(shell pkg-config --cflags libxml++-2.6 glibmm-2.4)
您可以对库做类似的事情:
LIBS := $(shell pkg-config --libs libxml++-2.6 glibmm-2.4 sigc++-2.0 gsl)
您可能会发现您还需要修改可执行目标的实际链接规则,以便库位于目标文件的右侧:
$(LINK) -o $(TARGET) $(OBJECTS) $(LFLAGS) $(LIBS)
这足以让它在我的 16.10 盒子上默认构建gcc-6
- 在 Ubuntu 16.04 上默认gcc-5.x
您可能需要指示编译器使用 C++11 功能,例如make "CXXFLAGS=-std=gnu++11"
。