问题的出现
(这里解释得比较累赘, 要找到答案, 可以直接进入第二章节)
看书(Ruminations on C++)时, 以章节为单位写了一些独立的小程序(使用cygwin g++作为编译器, sublime text 2作为编辑器). 以下是目录结构, 后来将写日志的函数提取出来, 放到common/common.h(.cpp), 并生成libcommon.so动态库, 供其他程序调用.
MJN@MJN-THINK ~/src/ruminations_on_c++ $ ls -1 05_surrogate_classes 06_handles_part1 07_handles_part2 08_an_object_oriented_program 09_analysis_of_classroom_exercise_part1 common
我使用的makefile的公共代码来自于$HOME/make/make.inc, 其大概内容如下:
include ${HOME}/src/make/make.local
include_dirs=${HOME}/src/ruminations_on_c++/common
lib_dirs=${HOME}/src/ruminations_on_c++/common
#------------------------------------------------
# c compiler
#------------------------------------------------
Linux_CC = gcc
AIX_CC = cc
SunOS_CC = CC
#------------------------------------------------
# c compiler flags
#------------------------------------------------
Linux_CCFLAGS = -std=c99 -g -Wall
AIX_CCFLAGS = -g -q$(OBJECT_MODE) -D_BIG_ENDIAN_ -D$(OBJECT_MODE_BIT)
SunOS_CCFLAGS =
#------------------------------------------------
# c++ compiler
#------------------------------------------------
Linux_CXX = g++
AIX_CXX = xlC
SunOS_CXX = CC
#------------------------------------------------
# DLL CC
#------------------------------------------------
AIX_DLLCC = ar -X$(OBJECT_MODE) rv
#------------------------------------------------
# DLL CC1
#------------------------------------------------
Linux_DLLCC1