在编译flownet2的时候由于使用make的方式,原作者建议的方式是make的方式,由于环境的不一致,导致出现recipe for target 'python/caffe/_caffe.so' failed这个问题,网上很多关于这个错误的解决方案,按理说应该是有效的,但是我的环境并没有效果,究其原因是作者提供的makefile实在/usr下进行寻找opencv,而我的/usr下的opencv确实是4.0。我想使用的是anacond3的环境,所以需要修正寻找路径,这里就需要修正makefile的配置了。当然也有其他解决方案,比如
1、将anacond3的opencv拷贝的/usr下,并修正opencv的链目标
但是这个方案没有尝试,或者其他卸载opencv4.0等方案没有尝试,因为我不知道我其他地方是否需要/usr下的opencv4.0。
2、直接修正makefile的配置
这是我尝试的方案,由于本身怼makefile这些东西不熟悉,所以makefile的配置有很多冗余的地方,经过详细的搜索,发现主要链接include和lib的地方就是makefile 和 makefile.config里面的
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/include/hdf5/serial
LIBRARY_DIRS := $(PYTHON_LIB) /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial
首先并不需要他主动去找/usr下的include 和lib所以在config的要去掉有冲突的第三方库,其次还需要在makefile中添加anaconda3的需要的路径。但是还有一个默认寻找PKG_CONFIG的地方,这个地方我也注释掉了,这个操作是否多余没有验证。