ทีแรกโปรแกรมที่ผมใช้ link กับกลายเป็น executable file ไฟล์เดียวเลย อาจจะทำให้เขียน test unit ยาก (อีกนัยหนึ่งคือผมทำไม่เป็นนั่นเอง) ผมเลยจะสร้างส่วนหนึ่งเป็น library ก่อน.
สมมุติว่าเดิมมี executable file ชื่อ toto (ตั้งตามอ.อานนท์)
Makefile.am ก็จะหน้าตาประมาณ
INCLUDES = -I$(top_srcdir)
bin_PROGRAMS = toto
toto_SOURCES = toto_shell.cpp titi.cpp tata.cpp
แต่ผมก็จะแยก titi tata ออกมาเป็น libtiti ก็จะเขียนแบบนี้
INCLUDES = -I$(top_srcdir)
# เพื่อสร้าง library
lib_LTLIBRARIES = libtiti.la
libtiti_la_SOURCEs = tit.cpp tata.cpp
bin_PROGRAMS = toto
toto_SOURCES = toto_shell.cpp
toto_LDADD = libtiti.la # บอกว่าใช้ toto ไป link กับ libtiti
เท่านี้ก็แยกกันได้แล้ว แต่ก็ไม่ได้เขียนถึง *.h เลย … เวลา make install แล้วใช้ได้จริง หรือเปล่าก็ไม่รู้ อาจจะต้องทำอะไรต่ออะไรอีก. แน่นอนที่เขียนไปคงมีอะไรมั่วมากมาย. แต่ว่าตอนต่อไปผมก็คงยังไม่ลอง install อยู่ดี แต่เน้นทำ test unit ก่อน คงเขียนเรื่อง make check ^_^.
[...] สร้าง library เพื่อ test unit [...]
Pingback โดย gtest + autotools (2) « वीर — 8 ตุลาคม 2008 @ 13:15