运行 libpng 应用程序时出现运行时错误
Runtime error when running libpng application
我正在尝试编译包括"png.h"头文件在内的openGL文件,
我收到以下错误:
Open GL version 2.1 ATI-3.2.24
libpng warning: Application built with libpng-1.4.12 but running with 1.6.37
error: png_create_read_struct returned 0.
Failed to read image texture from ../images/ceramic.png
我的文件.txt :
cmake_minimum_required (VERSION 3.13)
project (teapot)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
find_package(OpenGL REQUIRED)
find_package(GLUT REQUIRED)
find_package(PNG REQUIRED)
include_directories(${PNG_INCLUDE_DIR})
add_executable(teapot teapot.cpp)
target_link_libraries(teapot ${OPENGL_gl_LIBRARY} ${GLUT_LIBRARIES} ${PNG_LIBRARIES} )
set(CMAKE_CXX_FLAGS "-I ${CMAKE_OSX_SYSROOT} ${CMAKE_CXX_FLAGS} -std=c++11")
if (APPLE)
set (CMAKE_CXX_FLAGS "-Wno-deprecated-declarations ${CMAKE_CXX_FLAGS}")
endif ()
set_target_properties(teapot PROPERTIES
CXX_STANDARD 11
CXX_STANDARD_REQUIRED YES
CXX_EXTENSIONS NO
)
cmake . 工作正常,但是当我执行 ./teapot 时发生了上述错误。感谢您的任何帮助!
您可能只为libpng-1.4.12
安装了开发库,而不是为libpng-1.6.37
或其他一些"非标准"安装安装了开发库。
但是该消息似乎很清楚您链接到旧版本,但在可加载库的运行时路径中具有较新版本。
find_package(PNG REQUIRED)
只会通过find_library()
搜索"标准"位置。
您可能还希望更新CMakeLists.txt
文件以使用target_link_libraries( ... PNG::PNG)
。 这比尝试使用设置的PNG
变量更简单;编译项目时缺少PNG_DEFINITIONS
。 有关库目标,请参阅 CMake 手册buildsystem
部分。
您可以使用message()
命令检查变量以打印出其值。 其中一些也将存储在CMakeCache.txt
.
如果libpng
不在标准位置,则必须使用target_link_libraries( ... /path/to/lib)
和target_include_directories( ... /path/to/lib/headers)
,等等来处理它。
相关文章:
- 删除指向指针的指针是运行时错误吗
- c++中的指针和运行时错误
- 无法理解此 return 语句的功能,没有它就会发生运行时错误
- 在同一模拟中使用静脉和静脉_ inet内容时出现运行时错误
- 对单向链表进行排序时出现运行时错误
- 为什么此代码存在运行时错误?
- 你能解释一下什么运行时错误是如何解决它的吗?
- 为什么会出现 gettnig 运行时错误:加载类型为"_Bit_type"(stl_bvector.h) 的空指针?
- 为什么程序在 c++ 中迭代 emtpy 向量时会抛出运行时错误
- 运行时错误:引用绑定到类型为"int"的空指针
- 为什么当 vector 为空时会显示运行时错误?
- C++运行时错误与快速排序算法抛出堆栈转储错误
- 运行时错误:矢量下标超出范围:正在检查空集
- 分配给gslice_array会导致运行时错误
- cout 新创建的对象引发运行时错误
- C++在使用std::multimap时出现运行时错误的几率很小
- 运行时错误:引用绑定到类型"int"的未对齐地址0xbebebebebebebec6,这需要 4 个字节对齐 (stl_vector.h)
- 试图找出为什么我会收到运行时错误?
- 运行 libpng 应用程序时出现运行时错误
- 尝试使用 libpng 加载图像时在 Windows 上出现运行时错误