先写个CMakeLists.txt
然后在这个目录cmake .
就生成Makefile了,make就行了
CMakeLists.txt怎么写,官网也有一点说明,自带的example也有些帮助
但是我找如何定义一个宏就找了半天,gcc参数加个-DDEBUG就行了,
cmake要SET_SOURCE_FILES_PROPERTIES(${SRCS} COMPILE_FLAGS -D_DEBUG)
官网里有篇tutorial提到了,但是它写的有错误,命令名不对,SET_SOURCE_FILES_PROPERTIES少了file后面的s,被它浪费了不少时间。
我的是这样写的
project (echecker)
include_directories (../spot/include ../cudd-2.4.1/include)
link_directories (../spot/lib ../cudd-2.4.1/obj ../cudd-2.4.1/cudd ../cudd-2.4.1/util)
link_directories (../cudd-2.4.1/mtr ../cudd-2.4.1/st ../cudd-2.4.1/epd)
SET (SRCS ${SRCS} echecker.cpp AccessINI.cpp AccessINI.h closedTa.cpp)
SET (SRCS ${SRCS} closedTa.h composition.cpp composition.h compTransition.cpp compTransition.h)
SET (SRCS ${SRCS} ctaState.cpp ctaState.h ctaSuccIte_new.cpp ctaSuccIte_new.h ctaTgba.cpp ctaTgba.h)
SET (SRCS ${SRCS} Exp.cpp Exp.h fileTrans.cpp fileTrans.h hash.h location.cpp location.h )
SET (SRCS ${SRCS} system.cpp system.h transition.cpp transition.h )
SET (SRCS ${SRCS} variable.cpp variable.h CtaBDDState.cpp CtaBDDState.h CuddBDD.cpp )
SET (SRCS ${SRCS} JudgeStateType.cpp bddex.cpp counter.cpp paststate.cpp encodedstate.cpp bddstateheap.cpp )
SET (SRCS ${SRCS} couvreur99_checkex.cpp arrbddcouvreur99_check.cpp arrbddheap.cpp )
SET (SRCS ${SRCS} tastate.cpp tasucciter.cpp)
#difine _DEBUG
SET_SOURCE_FILES_PROPERTIES(${SRCS} COMPILE_FLAGS -D_DEBUG)
add_executable (echecker ${SRCS})
target_link_libraries (echecker spot bdd obj cudd util mtr st epd)