こんにちは。msVS++2010を使用していて、一日中SFMLをセットアップしようとしています。サイトから1.6をダウンロードし、VS2010で再構築しましたが、sfmlシステムが作成されなかったのは残念です。 -d.libファイル。これは私が使い慣れているものであり、新しいsystem-sおよびsystem-sdライブラリのみを生成しました。
次に、このビデオを注意深く見て、彼がsfml-system-sdの外部ライブラリを追加してテストコードを実行したことを確認しました。そのため、.exeの横にsfml-system-d.dllを追加し、次のまったく同じコードをビデオで取得しました。動作することを示した:
#include <iostream>
#include <SFML/System.hpp>
int main(int argc, char **argv)
{
sf::Clock clock;
sf::Sleep(0.1f);
while(clock.GetElapsedTime() < 5.0f)
{
std::cout << clock.GetElapsedTime() << std::endl;
sf::Sleep(0.5f);
}
}
明らかにクロックとスリープは機能していますが、コードの単純な行を追加すると'sf :: Thread thread();' 「プログラムを起動できません」、「設定が正しくありません」、「マニフェストファイルでエラーの可能性を確認してください」、「修正を解除しました」というエラーボックスがポップアップ表示されます。
また、スレッドに関するチュートリアルの最初のプログラムを実行しようとすると、次のようになります。
#include <SFML/System.hpp>
#include <iostream>
void ThreadFunction(void* UserData)
{
// Print something...
for (int i = 0; i < 10; ++i)
std::cout << "I'm the thread number 1" << std::endl;
}
int main()
{
// Create a thread with our function
sf::Thread Thread(&ThreadFunction);
// Start it !
Thread.Launch();
// Print something...
for (int i = 0; i < 10; ++i)
std::cout << "I'm the main thread" << std::endl;
return EXIT_SUCCESS;
}
私はこのような8つの未解決の外部シンボルを取得します:
1>sfml-system-s-d.lib(Thread.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: int __thiscall std::ios_base::width(int)" (__imp_?width@ios_base@std@@QAEHH@Z)
fatal error LNK1120: 8 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
最後に、これが私のプロジェクトの設定方法です。
- 箱から出してすぐに使えるディレクトリをインクルードし、新しくダウンロードしたSFML 1.6 / include
- VS2010で再構築されたSFMLへのlibディレクトリ(デバッグ/リリースDLL設定、および静的)。
- sfml-system-sd.libファイルへの追加の依存関係。
- 欲求不満から、私はすべてのdllファイルを.exeの隣に配置しました