linux automake时makefile.am的写法···极度困惑中

时间:2021-11-10 12:41:11
原来感觉做linux下的c++开发不用去写makefile了,直接装个像 eclipse一样的ide去编写,编译就ok了,但实际情况大多不是这样的吧?还需要去维护一个makefile来编译吧(比如在windows下用vs之类的编写好,拿到linux下去编译)如果用到了makefile,就目前来看,用automake是最好的选择吧,我学习了一段,用autotools工具来生成一个简单的程序的makefile还行(简单到源文件和头文件都在一个目录下) 但是目录分的比较复杂的就搞不定了,还有用makefile来生成lib库也比较让我困惑,网上搜到些例子(比如这个http://linux.chinaunix.net/techdoc/develop/2009/02/09/1061563.shtml),但是还觉得不详细读起来思路不连贯不容易明白,有哪位仁兄有关这方面得资料或心得吗?分享一下吧多谢了!!(尤其是关于makefile.am写法的,貌似它是automake中最重要的一环了)

8 个解决方案

#1


makefile.am 中有一些提供好的全局变量,这些变量他只是给声明好并没有去定义吧?用的时候还是需要自己去定义一下对吧?

如果项目的结构比较复杂,在makefile.am中怎样制定这些目录下的文件(cpp,h)是尤其让我困惑的,希望哪位仁兄能给我提供个完整写好的makefile.am的例子让我参考一下···再次谢谢了···

#2


怎么还没人来搭理呢?嫌我写的多了吧?那简单点:automake过程中的makefile.am怎么写?


有资料的朋友慷慨解囊一下啊····

#3


呵呵,借贵宝地问个问题,我的Makefile.am这么写,怎么总提示找不到我cpp里包含的头文件呢

AUTOMAKE_OPTIONS=foreign
noinst_PROGRAMS=ProcessMonitor
ProcessMonitor_SOURCES=ProcessMonitor.cpp DisplaySocket.cpp
ProcessMonitor_LDADD=-lpthread -lSockets
ProcessMonitor_LDFLAGS=./
INCLUDES=/data/css/libf/ProcessMonitor/Sockets

#4


引用 3 楼 libaowai 的回复:
呵呵,借贵宝地问个问题,我的Makefile.am这么写,怎么总提示找不到我cpp里包含的头文件呢

AUTOMAKE_OPTIONS=foreign
noinst_PROGRAMS=ProcessMonitor
ProcessMonitor_SOURCES=ProcessMonitor.cpp DisplaySocket.cpp
ProcessMonitor_LDADD=-lpthre……


兄弟你也在用automake呢吧?你看看这个http://wenku.baidu.com/view/ab5f8869a98271fe910ef952.html
http://linux.chinaunix.net/techdoc/develop/2009/02/09/1061563.shtml

我是看了,但写起来还是云里雾里的

#5


去下一些开源项目,里面一般都会用automake的
然后生成configure
你可以自己去看看makefile.am
但更重要的是
举一反三
但如果有一个官方的文档或者参考书给出来就更好!
我也困惑在configure.in怎么写。

#6


引用 5 楼 ganjianh8 的回复:
去下一些开源项目,里面一般都会用automake的
然后生成configure
你可以自己去看看makefile.am
但更重要的是
举一反三
但如果有一个官方的文档或者参考书给出来就更好!
我也困惑在configure.in怎么写。


configure.in 和makefile.am 里面都有很多定义好的变量和宏,用来引入库啊,指定头文件目录啊之类的
网上查的例子都是在说明他们干什么可没有举个实际项目的例子来描述怎么用,makefile.am有三种模式的,flat,shallo,deep,随着项目中目录结构的复杂度而越来越复杂,这个靠自己一点点去实践出来得需要一个艰苦的过程啊,

#7


太冷清了,没人理了····

#8


既然没人理,那好吧,结贴,散分!

#1


makefile.am 中有一些提供好的全局变量,这些变量他只是给声明好并没有去定义吧?用的时候还是需要自己去定义一下对吧?

如果项目的结构比较复杂,在makefile.am中怎样制定这些目录下的文件(cpp,h)是尤其让我困惑的,希望哪位仁兄能给我提供个完整写好的makefile.am的例子让我参考一下···再次谢谢了···

#2


怎么还没人来搭理呢?嫌我写的多了吧?那简单点:automake过程中的makefile.am怎么写?


有资料的朋友慷慨解囊一下啊····

#3


呵呵,借贵宝地问个问题,我的Makefile.am这么写,怎么总提示找不到我cpp里包含的头文件呢

AUTOMAKE_OPTIONS=foreign
noinst_PROGRAMS=ProcessMonitor
ProcessMonitor_SOURCES=ProcessMonitor.cpp DisplaySocket.cpp
ProcessMonitor_LDADD=-lpthread -lSockets
ProcessMonitor_LDFLAGS=./
INCLUDES=/data/css/libf/ProcessMonitor/Sockets

#4


引用 3 楼 libaowai 的回复:
呵呵,借贵宝地问个问题,我的Makefile.am这么写,怎么总提示找不到我cpp里包含的头文件呢

AUTOMAKE_OPTIONS=foreign
noinst_PROGRAMS=ProcessMonitor
ProcessMonitor_SOURCES=ProcessMonitor.cpp DisplaySocket.cpp
ProcessMonitor_LDADD=-lpthre……


兄弟你也在用automake呢吧?你看看这个http://wenku.baidu.com/view/ab5f8869a98271fe910ef952.html
http://linux.chinaunix.net/techdoc/develop/2009/02/09/1061563.shtml

我是看了,但写起来还是云里雾里的

#5


去下一些开源项目,里面一般都会用automake的
然后生成configure
你可以自己去看看makefile.am
但更重要的是
举一反三
但如果有一个官方的文档或者参考书给出来就更好!
我也困惑在configure.in怎么写。

#6


引用 5 楼 ganjianh8 的回复:
去下一些开源项目,里面一般都会用automake的
然后生成configure
你可以自己去看看makefile.am
但更重要的是
举一反三
但如果有一个官方的文档或者参考书给出来就更好!
我也困惑在configure.in怎么写。


configure.in 和makefile.am 里面都有很多定义好的变量和宏,用来引入库啊,指定头文件目录啊之类的
网上查的例子都是在说明他们干什么可没有举个实际项目的例子来描述怎么用,makefile.am有三种模式的,flat,shallo,deep,随着项目中目录结构的复杂度而越来越复杂,这个靠自己一点点去实践出来得需要一个艰苦的过程啊,

#7


太冷清了,没人理了····

#8


既然没人理,那好吧,结贴,散分!