2013-04-30 51 views
0

我一直在尋找答案,但是我發現的所有問題都是類似的問題,但答案根本無法幫助我。嘗試使用SFML時出錯(某些LNK錯誤)

我正在嘗試使用SFML作爲最終項目(我們想創建一個類似Minigore的遊戲),我們正在嘗試加載一個圖像,然後將其放入一個精靈。

這裏是我的代碼:

#include <SFML/System.hpp> 
#include <SFML\Graphics.hpp> 
#include <iostream> 

int main() 
{ 
sf::RenderWindow App(sf::VideoMode(800, 600, 32), "SFML Graphics"); 

while(App.IsOpened()) 
{ 
    sf::Clock Clock; 
    while (Clock.GetElapsedTime() < 5.f) 
    { 
     std::cout << Clock.GetElapsedTime() << std::endl; 
     sf::Sleep(0.5f); 
    } 

    sf::Image image; 
    sf::Sprite sprite; 

    if(!image.LoadFromFile("BaronsheetBas1.gif")) 
    { 

    } 
    else 
    { 
     sprite.SetImage(image); 
    } 
} 



    return 0; 
} 

當我編譯,我一直有這些錯誤。

1>------ Début de la génération : Projet : SFML_Affiche_image, Configuration : Debug Win32 ------ 
1>La génération a démarré 2013-04-30 19:07:23. 
1>InitializeBuildStatus: 
1> Mise à jour de l'horodatage "Debug\SFML_Affiche_image.unsuccessfulbuild". 
1>ClCompile: 
1> Toutes les sorties sont à jour. 
1>LINK : warning LNK4098: conflit entre la bibliothèque par défaut 'MSVCRT' et les autres bibliothèques ; utilisez /NODEFAULTLIB:library 
1>sfml-window-s.lib(WindowImplWin32.obj) : warning LNK4049: symbole défini localement [email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected] (public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::~basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(void)) importé 
1>sfml-window-s.lib(Window.obj) : warning LNK4049: symbole défini localement [email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected] (public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::~basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(void)) importé 
1>sfml-window-s.lib(VideoMode.obj) : warning LNK4049: symbole défini localement [email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected] (public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::~basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(void)) importé 
1>sfml-window-s.lib(WindowImpl.obj) : warning LNK4049: symbole défini localement [email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected] (public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::~basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(void)) importé 
1>sfml-window-s.lib(VideoModeSupport.obj) : warning LNK4049: symbole défini localement [email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected] (public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::~basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(void)) importé 
1>sfml-graphics-s.lib(RenderWindow.obj) : warning LNK4217: symbole défini localement [email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected] (public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::~basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(void)) importé dans la fonction "public: virtual __thiscall std::logic_error::~logic_error(void)" ([email protected]@@[email protected]) 
1>sfml-graphics-s.lib(Image.obj) : warning LNK4217: symbole défini localement [email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected] (public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::~basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(void)) importé dans la fonction [email protected]@@[email protected][email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@Z 
1>sfml-graphics-s.lib(Sprite.obj) : warning LNK4049: symbole défini localement [email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected] (public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::~basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(void)) importé 
1>sfml-graphics-s.lib(ImageLoader.obj) : warning LNK4217: symbole défini localement [email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected] (public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::~basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(void)) importé dans la fonction "public: __thiscall std::logic_error::logic_error(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" ([email protected]@@[email protected][email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@Z) 
1>sfml-window-s.lib(WindowImplWin32.obj) : warning LNK4049: symbole défini localement [email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@Z (public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(char const *)) importé 
1>sfml-window-s.lib(Window.obj) : warning LNK4049: symbole défini localement [email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@Z (public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(char const *)) importé 
1>sfml-window-s.lib(VideoMode.obj) : warning LNK4049: symbole défini localement [email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@Z (public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(char const *)) importé 
1>sfml-window-s.lib(WindowImpl.obj) : warning LNK4049: symbole défini localement [email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@Z (public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(char const *)) importé 
1>sfml-window-s.lib(VideoModeSupport.obj) : warning LNK4049: symbole défini localement [email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@Z (public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(char const *)) importé 
1>sfml-graphics-s.lib(RenderWindow.obj) : warning LNK4217: symbole défini localement [email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@Z (public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(char const *)) importé dans la fonction "protected: static void __cdecl std::vector<unsigned char,class std::allocator<unsigned char> >::_Xlen(void)" ([email protected][email protected][email protected]@[email protected]@@[email protected]@KAXXZ) 
1>sfml-graphics-s.lib(Image.obj) : warning LNK4049: symbole défini localement [email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@Z (public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(char const *)) importé 
1>sfml-graphics-s.lib(Sprite.obj) : warning LNK4049: symbole défini localement [email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@Z (public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(char const *)) importé 
1>sfml-graphics-s.lib(ImageLoader.obj) : warning LNK4217: symbole défini localement [email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@Z (public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(char const *)) importé dans la fonction "public: __thiscall std::logic_error::logic_error(class std::logic_error const &)" ([email protected]@@[email protected]@@Z) 
1>sfml-graphics-s.lib(ImageLoader.obj) : warning LNK4217: symbole défini localement [email protected][email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@2IB (public: static unsigned int const std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::npos) importé dans la fonction "public: bool __thiscall sf::priv::ImageLoader::SaveImageToFile(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::vector<class sf::Color,class std::allocator<class sf::Color> > const &,unsigned int,unsigned int)" ([email protected]@[email protected]@@[email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@@[email protected]@@[email protected]@Z) 
1>sfml-window-s.lib(WindowImplWin32.obj) : error LNK2001: symbole externe non résolu "__declspec(dllimport) public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" ([email protected][email protected]@[email protected]@V[email protected]@[email protected]@[email protected]@[email protected]@@Z) 
1>sfml-window-s.lib(Window.obj) : error LNK2001: symbole externe non résolu "__declspec(dllimport) public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" ([email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@@Z) 
1>sfml-window-s.lib(VideoMode.obj) : error LNK2001: symbole externe non résolu "__declspec(dllimport) public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" ([email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@@Z) 
1>sfml-window-s.lib(WindowImpl.obj) : error LNK2001: symbole externe non résolu "__declspec(dllimport) public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" ([email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@@Z) 
1>sfml-window-s.lib(VideoModeSupport.obj) : error LNK2001: symbole externe non résolu "__declspec(dllimport) public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" ([email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@@Z) 
1>sfml-graphics-s.lib(RenderWindow.obj) : error LNK2019: symbole externe non résolu "__declspec(dllimport) public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" ([email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@@Z) référencé dans la fonction "public: __thiscall std::logic_error::logic_error(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" ([email protected]@@[email protected][email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@Z) 
1>sfml-graphics-s.lib(Image.obj) : error LNK2001: symbole externe non résolu "__declspec(dllimport) public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" ([email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@@Z) 
1>sfml-graphics-s.lib(Sprite.obj) : error LNK2001: symbole externe non résolu "__declspec(dllimport) public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" ([email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@@Z) 
1>sfml-graphics-s.lib(ImageLoader.obj) : error LNK2001: symbole externe non résolu "__declspec(dllimport) public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" ([email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@@Z) 
1>sfml-graphics-s.lib(Image.obj) : error LNK2019: symbole externe non résolu "__declspec(dllimport) public: int __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::sputn(char const *,int)" ([email protected][email protected][email protected]@[email protected]@@[email protected]@[email protected]) référencé dans la fonction "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl std::operator<<<struct std::char_traits<char> >(class std::basic_ostream<char,struct std::char_traits<char> > &,char const *)" ([email protected]@[email protected]@@[email protected]@[email protected][email protected]@[email protected]@@[email protected]@[email protected]) 
1>sfml-graphics-s.lib(ImageLoader.obj) : error LNK2001: symbole externe non résolu "__declspec(dllimport) public: int __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::sputn(char const *,int)" ([email protected][email protected][email protected]@[email protected]@@[email protected]@[email protected]) 
1>sfml-window-s.lib(Window.obj) : error LNK2001: symbole externe non résolu "__declspec(dllimport) public: int __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::sputn(char const *,int)" ([email protected][email protected][email protected]@[email protected]@@[email protected]@[email protected]) 
1>sfml-window-s.lib(WindowImplWin32.obj) : error LNK2001: symbole externe non résolu "__declspec(dllimport) public: int __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::sputn(char const *,int)" ([email protected][email protected][email protected]@[email protected]@@[email protected]@[email protected]) 
1>sfml-graphics-s.lib(ImageLoader.obj) : error LNK2019: symbole externe non résolu "__declspec(dllimport) class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl std::operator<<<char,struct std::char_traits<char>,class std::allocator<char> >(class std::basic_ostream<char,struct std::char_traits<char> > &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" ([email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected][email protected]@[email protected]@@[email protected]@[email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@Z) référencé dans la fonction "public: bool __thiscall sf::priv::ImageLoader::LoadImageFromFile(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::vector<class sf::Color,class std::allocator<class sf::Color> > &,unsigned int &,unsigned int &)" ([email protected]@[email protected]@@[email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@@[email protected]@@[email protected]@Z) 
1>sfml-graphics-s.lib(ImageLoader.obj) : error LNK2019: symbole externe non résolu "__declspec(dllimport) bool __cdecl std::operator==<char,struct std::char_traits<char>,class std::allocator<char> >(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,char const *)" ([email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@Z) référencé dans la fonction "public: bool __thiscall sf::priv::ImageLoader::SaveImageToFile(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::vector<class sf::Color,class std::allocator<class sf::Color> > const &,unsigned int,unsigned int)" ([email protected]@[email protected]@@QAE[email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@@[email protected]@@[email protected]@Z) 
1>sfml-graphics-s.lib(ImageLoader.obj) : error LNK2019: symbole externe non résolu "__declspec(dllimport) public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::substr(unsigned int,unsigned int)const " ([email protected][email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@Z) référencé dans la fonction "public: bool __thiscall sf::priv::ImageLoader::SaveImageToFile(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::vector<class sf::Color,class std::allocator<class sf::Color> > const &,unsigned int,unsigned int)" ([email protected]@[email protected]@@[email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@@[email protected]@@[email protected]@Z) 

時鐘完美地工作(我已經嘗試過了單獨的),但是當我試圖加載圖像,然後把它變成一個精靈,這些錯誤出現。

我曾嘗試包括那些librairies到我的項目,但錯誤依然存在 - SFML-main.lib - SFML系統-s.lib和SFML系統-sd.lib - SFML,圖形 - s.lib和SFML-圖形sd.lib - SFML用窗s.lib和SFML窗口,sd.lib

我真的不知道whta現在要做的:/

如果任何你們有答案或可以幫助我找到它,它會很高興分享:)

謝謝!

注意:對不起我的英語,這不是我最不熟悉的語言。

回答

1

如果要鏈接到sfml的靜態庫(sfml-system-s.lib等),請確保在預處理定義中設置了SFML_STATIC變量。

在Visual Studio中,你可以做到這一點,在預處理設置(「預處理器定義」),如下所示:http://sfml-dev.org/tutorials/2.0/start-vc.php

你,如果你想創建一個遊戲絕對應該鏈接到靜態庫在Windows上運行其他沒有安裝sfml dll的機器。

+0

謝謝,但我不確定如何去做。我如何定義一個SFML_STATIC宏? 把我需要的DLL是不夠的? – Kaptin 2013-05-02 18:22:09

+0

只需將SFML_STATIC放入預處理器定義中,如下所示:http://sfml-dev.org/tutorials/2.0/images/start-vc-static.png。 然後總是鏈接到靜態(sfml - * - s.lib)庫 – psibar 2013-05-02 18:25:25

+0

當我這樣做時,我又回到17個錯誤的開始:/我真的很討厭sfml ... btw我使用1.6 – Kaptin 2013-05-02 19:04:44

0

你有一個錯誤的斜線在包括聲明

#include <SFML\Graphics.hpp> 

應該是:

#include <SFML/Graphics.hpp> 
+0

你是對的,但編譯器錯誤都沒有因爲它:/謝謝你讓我知道雖然 – Kaptin 2013-05-01 12:05:31

1

發現傢伙,

我不得不投入鏈接器輸入館藏

sfml-graphics.lib, sfml-window.lib, sfml-system.lib 

沒有把-s ....

一個爲你們最後一個問題,是正常的,我不得不把所有三個.dll文件在我的項目,原因是Visual Studio在說,它無法找到的檔案?

非常感謝!

+1

是的,你必須把它們全部3它們在sfml中這些庫保持分開(以備用內存如果組件不需要)。如果你使用的音頻也包括sfml-audio.lib – psibar 2013-05-01 15:15:34