今天用cmake构建一个工程,因为引用外部库的原因,需要定义一个宏,否则没法使用那些函数,于是:
target_compile_definitions(${PROJECT_NAME} PRIVATE P2P_API)
但是发现并没有什么用,反而语法报错,表示说P2P_API这个宏被定义为了1,于是尝试了:
target_compile_definitions(${PROJECT_NAME} PRIVATE P2P_API=)
果然好转,由此观之,普通的不加等于号的定义会默认定义为1,而如果有需要将某个宏定义为特殊的值的时候,包括空值,需要使用等于号,在cmake中。