2

Windows 7 32 ビットの私のマシンと C++ のコンパイラはVisual Studio 2012なので、最初にここから FLTK をダウンロードし ( http://www.stroustrup.com/Programming/FLTK/ )、次のように作業を行いました。自分:

I. ダウンロードしたファイルを解凍し、メイン フォルダー fltk-ll? を開きます。Visual C++ フォルダー (vc2005 または vcnet など) で、fltk.dsw を開きます。古いプロジェクト ファイルの更新について尋ねられた場合は、[すべてはい] を選択します。

PS: 私のコンパイラはvc2005ではなくvc2012で、vc2005 または vcnetフォルダーにfltk.dswという名前のファイルがなかったので、 vcnetから fltk.sln を選択してインストールしました。取り付けに失敗もありましたが、やっと完成!

  1. [ビルド] メニューから、[ソリューションのビルド] を選択します。これには数分かかる場合があります。ソース コードはスタティック リンク ライブラリにコンパイルされるため、新しいプロジェクトを作成するたびに FLTK ソース コードを再コンパイルする必要はありません。プロセスが完了したら、Visual Studio を閉じます。

  2. メイン FLTK ディレクトリから lib フォルダーを開きます。README.lib (scven があるはずです) を除くすべての .lib ファイルを C:\Prograrn Files\Microsoft Visual Studio\Vc\lib にコピーします (単に移動/ドラッグするだけではありません)。

  3. FLTK メイン ディレクトリに戻り、FL フォルダを C:\Program Files\Microsoft Visual Studio\Vc\include にコピーします。

  4. 通常の手順を 1 つ変更して、Visual Studio で新しいプロジェクトを作成します。プロジェクトの種類を選択するときに、「コンソール アプリケーション」ではなく「\Vin32 プロジェクト」を作成します。必ず「空のプロジェクト」を作成してください。そうしないと、一部の「ソフトウェア ウィザード」がプロジェクトに多くのことを追加してしまいます。

  5. Visual Studio で、メイン (上部) メニューから [プロジェクト] を選択し、ドロップダウン メニューから [プロパティ] を選択します。

  6. [プロパティ] ダイアログ ボックスの左側のメニューで、[リンカー] フォルダーをクリックします。これにより、サブメニューが展開されます。このサブメニューで、[入力] をクリックします。右側の [Additional Dependencies] テキスト フィールドに、次のテキストを入力します。 fltkd.lib wsock32.lib comctl32.lib fltkjpegd.lib fltkimagesd.lib [il がデフォルトになっているため、次の手順は必要ないかもしれません] In the Ignore Specific Libraryテキスト フィールドに次のテキストを入力します: libcd.lib

  7. [/MDd が既定になっているため、この手順は不要な場合があります。] 同じ [プロパティ] ウィンドウの左側のメニューで、[C/C++] をクリックして別のサブメニューを展開します。[コード生成] サブメニュー項目をクリックします。右側のメニューで、[ランタイム ライブラリ] ドロップダウンを [マルチスレッド デバッグ DLL (/MDd)] に変更します。[OK] をクリックして [プロパティ] ウィンドウを閉じます。

このステップでは、新しく作成したプロジェクトに新しい項目を追加し (そのプロジェクトにtestv.cppという名前を付けました)、FLTK をテストするために次の簡単なコードを貼り付けました。

#include <FL/Fl.h>
#include <FL/Fl_box.h>
#include <FL/Fl_Window.h>

//***************************

int main() 
{
  FI_Window window(200, 200, "Window title");
  FL_Box box(O,O,200,200, "Hey, I mean, He llo, World! ");
  window.show();
  return Fl::run();
}

このプロジェクトを実行した後 (F5 キーを押す)、11 個のエラーが表示されました。それらは次のとおりです。

エラー 1 エラー LNK2019: 未解決の外部シンボル "public: static int __cdecl Fl::run(void)" (?run@Fl@@SAHXZ) 関数 _main C:\Users\CS\documents\visual studio 2012\Projects\ で参照されていますtestv\testv\testv.obj

エラー 2 エラー LNK2019: 未解決の外部シンボル "保護: __thiscall Fl_Widget::Fl_Widget(int,int,int,int,char const *)" (??0Fl_Widget@@IAE@HHHHPBD@Z) 関数で参照されている "パブリック: __thiscall Fl_Box ::Fl_Box(int,int,int,int,char const *)" (??0Fl_Box@@QAE@HHHHPBD@Z) C:\Users\CS\documents\visual studio 2012\Projects\testv\testv\testv.オブジェクト

エラー 3 エラー LNK2019: 未解決の外部シンボル "public: virtual __thiscall Fl_Widget::~Fl_Widget(void)" (??1Fl_Widget@@UAE@XZ) 関数で参照されている "public: virtual __thiscall Fl_Box::~Fl_Box(void)" ( ??1Fl_Box@@UAE@XZ) C:\Users\CS\documents\visual studio 2012\Projects\testv\testv\testv.obj

エラー 4 エラー LNK2001: 未解決の外部シンボル "public: virtual void __thiscall Fl_Widget::resize(int,int,int,int)" (?resize@Fl_Widget@@UAEXHHHH@Z) C:\Users\CS\documents\visual studio 2012\プロジェクト\testv\testv\testv.obj

エラー 5 エラー LNK2001: 未解決の外部シンボル "保護: 仮想 void __thiscall Fl_Box::draw(void)" (?draw@Fl_Box@@MAEXXZ) C:\Users\CS\documents\visual studio 2012\Projects\testv\testv\ testv.obj

エラー 6 エラー LNK2001: 未解決の外部シンボル "public: virtual int __thiscall Fl_Box::handle(int)" (?handle@Fl_Box@@UAEHH@Z) C:\Users\CS\documents\visual studio 2012\Projects\testv\ testv\testv.obj

エラー 7 エラー LNK2019: 未解決の外部シンボル "public: __thiscall Fl_Window::Fl_Window(int,int,char const *)" (??0Fl_Window@@QAE@HHPBD@Z) 関数 _main C:\Users\CS\documents で参照\visual studio 2012\Projects\testv\testv\testv.obj

エラー 8 エラー LNK2019: 未解決の外部シンボル "public: virtual __thiscall Fl_Window::~Fl_Window(void)" (??1Fl_Window@@UAE@XZ) 関数 _main C:\Users\CS\documents\visual studio 2012\Projects で参照\testv\testv\testv.obj

エラー 9 エラー LNK2019: 未解決の外部シンボル "public: virtual void __thiscall Fl_Window::show(void)" (?show@Fl_Window@@UAEXXZ) 関数 _main C:\Users\CS\documents\visual studio 2012\Projects\ で参照testv\testv\testv.obj

エラー 10 エラーLNK2019:関数で参照されている未解決の外部シンボル WinMain@16 _ _tmainCRTStartup C:\Users\CS\documents\visual studio 2012\Projects\testv\testv\MSVCRTD.lib(crtexew.obj)

エラー 11 エラー LNK1120: 10 個の未解決の外部 C:\Users\CS\documents\visual studio 2012\Projects\testv\Debug\testv.exe

問題は、プロジェクトの作成に関係していると思います。Win32 プロジェクトから空のプロジェクトを作成した後、 [新しい項目の追加]をクリックし、 .cppタイプを選択しました。それが正しかったかどうかはわかりません。

問題を解決するためのアイデアはありますか?

4

2 に答える 2

1

すべてのライブラリ名を区切り記号なしで 1 行に入力しているため、このエラーが発生しています。リスト全体を 1 つのライブラリとして使用しています。省略記号をクリックしてから、各ライブラリ名を改行で区切って入力します。

wsock32.lib の代わりに、ws2_32.lib を使用します。

于 2014-01-06T18:47:11.447 に答える
0

すべてのライブラリ名を区切り記号なしで 1 行に入力しているため、このエラーが発生しています。リスト全体を 1 つのライブラリとして使用しています。省略記号をクリックしてから、各ライブラリ名を改行で区切って入力します。

wsock32.lib の代わりに、ws2_32.lib を使用します。

追加するだけです。各ライブラリを区切るには、各ライブラリ名の後にセミコロンを付ける(例: libraryname.lib; libraryname.lib )か、テキスト ボックスで Enter キーを押して次の行に移動し、Visual Studio が次の行と入力したものをすべて読み取るようにします。それをライブラリ名と見なします。

例:

libraryname.lib - Enter キーを押して次の行に移動すると、VS はライブラリ名を認識します。 libraryname.lib -これは次の行であり、新しいライブラリです

C++ を勉強し、Microsoft Visual Studio 2015 を使用しています ^_^

于 2017-02-24T09:55:03.730 に答える