0
我正在編譯Libviso2。即使包含png.h
,也存在關於未聲明的標識符png的錯誤。我不確定這裏有什麼問題?C++ PNG中未定義的引用,雖然包含png.h
在它的演示代碼都像
#include <png.h>
...
...
png::image<png::gray_pixel> left_img(left_img_file_name);
我的CMakeLists.txt去如下
# project
cmake_minimum_required (VERSION 2.8)
project (libviso2)
find_package(PNG REQUIRED)
# directories
set (LIBVISO2_SRC_DIR src)
# include directory
include_directories(${PNG_INCLUDE_DIRS})
include_directories("${LIBVISO2_SRC_DIR}")
link_directories(${PNG_LIBRARY_DIRS})
add_definitions(${PNG_DEFINITIONS})
# use sse3 instruction set
SET(CMAKE_CXX_FLAGS "-msse3")
# sources
FILE(GLOB LIBVISO2_SRC_FILES "src/*.cpp")
# make release version
set(CMAKE_BUILD_TYPE Release)
# demo program
add_executable(viso2 ${LIBVISO2_SRC_FILES})
target_link_libraries (viso2 ${PNG_LIBRARY})
在cmake ../ && make
它拋出一堆我有關PNG引用錯誤沒有發現
[ 10%] Building CXX object CMakeFiles/viso2.dir/src/demo.cpp.o
/Users/pranav/workspace/libviso2/src/demo.cpp:80:7: error: use of undeclared identifier 'png'
png::image<png::gray_pixel> left_img(left_img_file_name);
^
/Users/pranav/workspace/libviso2/src/demo.cpp:80:19: error: use of undeclared identifier 'png'
png::image<png::gray_pixel> left_img(left_img_file_name);
^