2

わかりました、誰かがこの質問を重複としてマークする前に、未定義の参照/未解決の外部シンボルエラーとは何ですか? どうすれば修正できますか? および他の多くのオンライン投稿。私は思いついたすべての解決策を試しましたが、まだこれらのエラーを修正できません:

1>SOIL.lib(stb_image_aug.o) : error LNK2019: unresolved external symbol __alloca referenced in function _stbi_zlib_decode_noheader_buffer
1>SOIL.lib(image_helper.o) : error LNK2019: unresolved external symbol _sqrtf referenced in function _RGBE_to_RGBdivA2

Windows 8 で Visual Studio 2012 を使用しています。ライブラリの再構築を試みましたが、すべてのインクルードとディレクトリを 5 回チェックしました。SOIL のインクルード/ディレクトリは次のとおりです。

>Configuration Properties->VC++ Directories->Include Directories: "C:\SOIL\Simple OpenGL Image Library\src
>Configuration Properties->VC++ Directories->Library Directories: "C:\SOIL\Simple OpenGL Image Library\lib
>Congiguration Properties->Linker->Input->Additional Dependencies: "SOIL.lib"

そして、これが私のコードです。SOIL_load_image 関数がエラーの原因です。

#include <Windows.h>
#include <GL/glut.h>
#include "glext.h"
#include <SOIL.h>

void glEnable2D( void );
void display();
void glDisable2D( void );

GLuint tex;

/* Main function: GLUT runs as a console application starting at main()  */
int main(int argc, char** argv) 
{
    glutInit(&argc, argv);                 // Initialize GLUT
    glutCreateWindow("OpenGL Setup Test"); // Create a window with the given title
    glutInitWindowSize(320, 320);   // Set the window's initial width & height
    glutInitWindowPosition(50, 50); // Position the window's initial top-left corner

    //Texture
    glGenTextures(1, &tex);
    glBindTexture(GL_TEXTURE_2D, tex);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_BORDER);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_BORDER);
    float color[] = { 1.0f, 0.0f, 0.0f, 1.0f };
    glTexParameterfv(GL_TEXTURE_2D, GL_TEXTURE_BORDER_COLOR, color);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);

    int width, height;
    unsigned char* image = SOIL_load_image("Resources/Sprites/playerCharacter.png", &width, &height, 0, SOIL_LOAD_RGB);
    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, image);
    SOIL_free_image_data(image);
    //Texture

    glutDisplayFunc(display); // Register display callback handler for window re-paint
    glutMainLoop();           // Enter the infinitely event-processing loop
    return 0;
}

私は一日中これに取り組んできましたが、何が間違っているのか理解できず、非常にイライラしています. 注: SOIL.lib の元の名前は「libSOIL.a」であることは知っています。その名前で作業しようとしましたが、同じエラーが発生しました。

4

1 に答える 1