而這一個Makefile是由autoconf與automake所建立的,因此要修改使得可以建立新的Makefile,但是,因為我不熟autoconf與automake所以
1. 複製SctpSocketHandler.cpp與SctpSocketHandler.h到src
2. 修改Makefile.am加入SctpSocketHandler.cpp與SctpSocketHandler.h
3. 在Receiver.hpp與Transmitter.hpp加入#include "SctpSocketHandler.h"
4. autoconf
產生configure檔案
5. aclocal
產生aclocal.m4
6. automake --add-missing
產生Makefile.in
7. LIBS=-lsctp ./configure
產生Makefile
8. make
編譯
[2009.05.26 補充]
要在ihu的專案中加入一個具有Q_OBJECT, slots, signals
必需要依以下步驟...
例如要加入Ren.hpp與Ren.cpp
這裡要注意的是, header file一定是要hpp的副檔名
1. 在Makefile.am的ihu_SOURCES加入src/Ren.hpp src/Ren.cpp
2. 同時在Makefile.am的nodist_ihu_SOURCES加入src/moc_Ren.cpp
3. 在configure.ac的AM_INIT_AUTOMAKE改成AM_INIT_AUTOMAKE(Ihu, 1.0)
4. 然後依以上方式執行autoconf;aclocal;automake --add-missing;LIBS=-lsctp ./configure
5. make
[2009.05.28 補充]
為了避免每一次configure均加上LIBS=-lsctp
我們要修改configure.ac檔案加入
下面這一個是加入一個sctp的library
AC_CHECK_LIB(sctp, sctp_recvmsg,, [AC_MSG_ERROR(You have get sctp to build the IHU)])
而下面這一行是檢查header file巨集
AC_CHECK_HEADER
相關autoconf與automake可以參考
【轉貼】自動產生Makefile - autoconf & automake
沒有留言:
張貼留言