41

GLFW ライブラリを使用して OpenGL のプログラミングを開始するために、MS VS VC++ を初めてインストールしました。http://shawndeprey.blogspot.com/2012/02/setting-up-glfw-in-visual-studio-2010.htmlにあるインストール方法の指示に従います。 次に、テスト用にこの簡単なプログラムを作成しました。 、Eclipseで動作しました:

#include <stdlib.h>
#include <GL/glfw.h>

using namespace std;

int main()
{
    int running = GL_TRUE;
    if (!glfwInit()) {
        exit(EXIT_FAILURE);
    }

    if (!glfwOpenWindow(300, 300, 0, 0, 0, 0, 0, 0, GLFW_WINDOW)) {
        glfwTerminate();
        exit(EXIT_FAILURE);
    }

    while (running) {
        // glClear( GL_COLOR_BUFFER_BIT );
        glfwSwapBuffers();
        running = !glfwGetKey(GLFW_KEY_ESC) && glfwGetWindowParam(GLFW_OPENED);
    }

    glfwTerminate();
    exit(EXIT_SUCCESS);
    return 0;
}

しかし、その後、このひどいエラーが発生しました:

------ Build started: Project: first1, Configuration: Debug Win32 ------
   LINK : fatal error LNK1561: entry point must be defined
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

私は知っています、私はインターネットを見回しましたが、私が見つけた唯一の解決策は「機能するにはmain()機能が必要です」でした. 私は明らかにそれを持っていますが、それでも同じ致命的なエラーが発生します:(

修正方法について回答をいただければ幸いです。インストールプロセスまたは何かに欠陥がある可能性があります。

4

8 に答える 8

27

これはコンソール プログラム プロジェクトですか、それとも Windows プロジェクトですか? Win32 および同様のプロジェクトでは、エントリ ポイントがWinMain().

  1. 左側のプロジェクト (ソリューションではない) を右クリックします。
  2. 次に、[プロパティ] -> [構成プロパティ] -> [リンカー] -> [システム] をクリックします。

Subsystem Windowsエントリ ポイントが WinMain() である必要があると表示されている場合、つまり

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nShowCmd)
{
   your code here ...
}

また、コメントといえば。これは実行時エラーではなく、コンパイル (より正確にはリンク) エラーです。デバッグを開始すると、コンパイラは (モジュールをコンパイルするだけでなく) 完全なプログラムを作成する必要があり、そのときにエラーが発生します。

ロードして実行するまでには至りません。

于 2013-06-12T16:36:39.640 に答える
8

この場合、プログラムのエントリ ポイントが見つかりませんmain()。リンカーの設定が間違っている可能性があります。

こちらの投稿をご覧ください

于 2013-06-12T16:44:17.837 に答える
7

コンソール (/SUBSYSTEM:CONSOLE) に変更すると機能します

于 2015-01-31T21:30:50.997 に答える
1

ファイルの行末を変更した後、VSでこれが発生しました。それらを Windows CR LF に戻すと、問題が修正されました。

于 2015-10-29T01:15:04.120 に答える
0

Visual Studio の場合: Properties ->Advanced ->Entry Point->プログラムの実行を開始する関数の名前のみを、大文字と小文字を区別して、角かっこやコマンド ライン引数なしで記述します。

于 2016-12-30T17:51:00.847 に答える