我正在做一个项目,我试图加载一个图像,以便将其用作纹理,但当我尝试包含stb_image时遇到了一个问题。
我把< code>stb_image.h放在< code > src/vendor/STB _ image/中,用
#define STB_IMAGE_IMPLEMENTATION
#include "stb_image.h"
在文件中,并将文件放在<code>src/vendor/stb_image/</code>目录中。当我尝试包含<code>#include“vendor/stb_image/stb-image.h”
: && /usr/bin/c++ -Wall -Werror -std=c++++14 -g CMakeFiles/opengl-learning.dir/src/Debug.cpp.o CMakeFiles/opengl-learning.dir/src/IndexBuffer.cpp.o CMakeFiles/opengl-learning.dir/src/Renderer.cpp.o CMakeFiles/opengl-learning.dir/src/Shader.cpp.o CMakeFiles/opengl-learning.dir/src/Texture.cpp.o CMakeFiles/opengl-learning.dir/src/VertexArray.cpp.o CMakeFiles/opengl-learning.dir/src/VertexBuffer.cpp.o CMakeFiles/opengl-learning.dir/src/main.cpp.o -o opengl-learning -lglfw /usr/lib64/libGLEW.so /usr/lib/x86_64-linux-gnu/libOpenGL.so /usr/lib/x86_64-linux-gnu/libGLX.so /usr/lib/x86_64-linux-gnu/libGLU.so && :
/usr/bin/ld: CMakeFiles/opengl-learning.dir/src/Texture.cpp.o: in function `Texture::Texture(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
/home/user/Documents/CPP-Stuff/OpenGL-Learning/src/Texture.cpp:5: undefined reference to `stbi_set_flip_vertically_on_load'
/usr/bin/ld: /home/user/Documents/CPP-Stuff/OpenGL-Learning/src/Texture.cpp:6: undefined reference to `stbi_load'
/usr/bin/ld: /home/user/Documents/CPP-Stuff/OpenGL-Learning/src/Texture.cpp:23: undefined reference to `stbi_image_free'
collect2: error: ld returned 1 exit status
这是我试图运行的代码,它利用了stb_image:
stbi_set_flip_vertically_on_load(1);
m_LocalBuffer = stbi_load(path.c_str(), &m_Width, &m_Height, &m_BPP, 4);
我已经尝试使用STB_IMAGE将< code > # define STB _ IMAGE _ IMPLEMENTATION 放入文件中,然后包含它,但是效果不是很好。比以前好多了,但是当我试着加载图片时,什么也没发生。我打印了一些图像数据
stbi_set_flip_vertically_on_load(1);
m_LocalBuffer = stbi_load(path.c_str(), &m_Width, &m_Height, &m_BPP, 4);
std::cout << "m_BPP: " << m_BPP << " m_Width: " << m_Width << " m_Height: " << m_Height << std::endl;
它打印m_BPP:0 m_Width:0 m_Height:0
(默认值,表示它没有加载任何内容)。m_LocalBuffer也是空的。我没有任何opengl错误或编译器错误,所以我不知道我做错了什么。我正在使用cmake和ninja来构建,如果这有什么帮助的话。cmake文件和我用于构建 build.sh 文件将包括在下面。
CmakeList:
cmake_minimum_required (VERSION 3.5)
if(POLICY CMP0072)
cmake_policy(SET CMP0072 NEW)
else(NOT POLICY CMP0072)
message(STATUS "Error")
endif(POLICY CMP0072)
project (opengl-learning)
find_package(PkgConfig REQUIRED)
pkg_search_module(GLFW REQUIRED glfw3)
include_directories(${GLFW_INCLUDE_DIRS} ${OPENGL_INCLUDE_DIR})
set (GCC_COVERAGE_LINK_FLAGS "-lglfw3 -pthread -ldl -lGLU -lGL -lrt -lXrandr -lXxf86vm -lXi -lXinerama -lX11 -lGLEW -lGLU -lGL")
add_definitions(${GCC_COVERAGE_COMPILE_FLAGS})
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Werror -std=c++14")
set (source_dir "${PROJECT_SOURCE_DIR}/src/")
file (GLOB source_files "${source_dir}/*.cpp")
add_executable (opengl-learning ${source_files})
find_package(OpenGL REQUIRED)
find_package(GLEW REQUIRED)
target_link_libraries(opengl-learning ${GLFW_LIBRARIES} ${GLEW_LIBRARIES} ${OPENGL_LIBRARIES})
build.sh:
#!/bin/sh
cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Debug
ninja
我可以把我所有的代码放在github上,如果需要的话,我可以发送一个链接到repo。
包含stb方法实现的文件(< code > src/vendor/STB _ image/STB _ image . cpp )不是编译的一部分,这可以通过检查构建命令中提到的CPP文件来看出。
这样做的原因是cmake文件设置为仅编译src文件夹中的文件,而不是src/供应商/stb_image/
文件夹中的文件。您必须添加这些文件才能将库的实现带入您的项目。
我正在写一份GCM申请。我无法将收到的邮件设置为文本视图。 检查以下代码: (错误msg: findViewById(int)方法未定义为new Runnable(){})
我刚刚开始使用Spring,我正在尝试使用@NotBlank。问题是它不起作用。pom.xml我有以下依赖项: 这是我的进口: 我也得到了这个错误: 我搜索了类似的问题,答案是,通过添加此依赖项并重新启动IDE将起作用。就我而言,它仍然不起作用。有什么建议吗?
当我尝试此代码时 我收到这条信息: 警告:无法修改标头信息-标头已由/home/httpd/vhosts/your-click.ch/httpdocs/wp-includes/formatting.php:4179中的/home/httpd/vhost/your-click.ch/httpdocs/wp-includess/pluggable发送。第925行的php警告:无法修改标头信息-标头已由
看来我无法导入这个包:github。com/golang/protobuf/proto 当我尝试构建或使用go-get时,我得到:无法加载github。com/golang/protobuf/proto:github模块。com/golang/protobuf@latest(v1.3.2)找到,但不包含包github。com/golang/protobuf/proto 这是一个受欢迎的软件包,我很
我基本上使用了install命令“$pip install Flask”,当我试图运行一个程序时,它会说“找不到模块”Flask安装在“/usr/local/lib/python2.7/site包”中,但我认为pip的意义在于,我可以到处导入这些包。我试图在我的桌面上运行一个文件,甚至当我将Flask文件夹移动到桌面上时,它也不起作用。有什么建议吗?谢谢
我正在尝试使相机应用程序存储输出到我的内部存储。我还知道第三方应用程序不能访问我的应用程序的内部存储,但我们可以通过公开内部目录来做到这一点。我在这里遵循了指南: 相机意图不保存照片 https://developer.android.com/reference/android/support/v4/content/fileprovider.html 当我运行应用程序时,我可以得到以下Logcat