我需要使用 Makefile 在我的项目中包含我的 Exiv2 扩展。我成功地通过终端直接运行它:
g++ -std=c++11 test.cpp -I/usr/local/include -L/usr/local/lib -lexiv2
我原来的 Makefile(它有效)重要部分:
COMPILER_FLAGS = -Wall -c -O2 -std=c++11 -fpic -o
LINKER_FLAGS = -shared
LINKER_DEPENDENCIES = -lphpcpp -lopencv_core -lopencv_imgproc -lopencv_highgui \
-lopencv_ml -lopencv_video -lopencv_features2d \
-lopencv_calib3d -lopencv_objdetect \
现在我必须运行一个使用带有 Makefile 的 Exiv2 的程序。现在我正在尝试自定义 Makefile,尝试过
COMPILER_FLAGS = -Wall -c -O2 -std=c++11 -I/usr/local/include -L/usr/local/lib -fpic -o
LINKER_FLAGS = -shared
LINKER_DEPENDENCIES = -lphpcpp -lopencv_core -lopencv_imgproc -lopencv_highgui \
-lopencv_ml -lopencv_video -lopencv_features2d \
-lopencv_calib3d -lopencv_objdetect \
-lexiv2 \
不起作用,make的输出是:
[root@localhost psdk4]# make
g++ -Wall -c -O2 -std=c++11 -I/usr/local/include -L/usr/local/lib -fpic -o metacopy.o metacopy.cpp
metacopy.cpp: In member function ‘int Params::copyMetadata(int, char**)’:
metacopy.cpp:50:9: error: ‘AutoPtr’ is not a member of ‘Exiv2::BasicIo’
Exiv2::BasicIo::AutoPtr fileIo(new Exiv2::FileIo(params.read_));
^
metacopy.cpp:50:33: error: expected ‘;’ before ‘fileIo’
Exiv2::BasicIo::AutoPtr fileIo(new Exiv2::FileIo(params.read_));
...
这意味着它没有找到Exiv2方法,如何自定义我的Makefile?