- 主题:g++编译 multiple definition 问题
删掉这二者之一试试
SRCS+= redishelper.cpp
OBJS+= redishelper.o
--
FROM 125.35.125.*
Makefile就是依赖关系。
搞这个Makefile的人希望当头文件、Makefile自身变动时,重新build对应的文件,依赖里面就写了头文件、Makefile。
pkg-config是有文档的,对应的每个package有一个配置文件来描述。
https://www.freedesktop.org/wiki/Software/pkg-config/
【 在 bigsen 的大作中提到: 】
: 搞定了,果然是这个原因,多谢大佬。另外还有几个问题想请教下:
: 1)什么时候需要在INCS中添加依赖的头文件?
: 我把“INCS+= $(wildcard ./hiredis/*.h)”这一行也给屏蔽了,但依然能争取编译。redishelper.cpp中依赖./hiredis/hiredis.h这个头文件,已经在redishelper.cpp中include的了。因此就不太明白,Makefile中的INCS,是需要加入哪些头文件的?按说这些被依赖的头文件都会在.cpp中被显示的include,所以不明白这里的INCS是起什么作用的?
: ...................
--
FROM 125.35.125.*
这个makefile看着没什么复杂的
如果工程要跨平台,可以考虑改成cmake。
一般IDE也都能基于makefile搞出来工程(比如import),但有可能要手动调整一下。
【 在 bigsen 的大作中提到: 】
: 我是要在既有工程中添加一些新的代码文件,而这个既有工程只有Makefile,工程还稍微有点庞大,也不能利用Makefile直接反向生成cmake或者其它编辑环境所需那种工程(依赖)文件。因此搞得我但凡添加一些代码文件就得手动修改Makefile中,有些新添加的代码对既有工程还有些依赖,很崩溃。
: 这种情况只能这么搞么,常规办法是什么?或者有什么从Makefile反向生成工程文件的方法?
:
--
FROM 125.35.125.*
好像没有,我前面说得不准确。
IDE只是打开Makefile使用,不会转换成IDE自有的工程格式(理论上也不可能完美转换)
【 在 bigsen 的大作中提到: 】
: 有IDE可以从makefile反向导出工程么?
--
FROM 125.35.125.*