使用MinGW使用网络代码编译简单的C ++ SFML文件会引发错误"未定义的对IpAddress的引用"

时间:2016-05-27 23:26:28

标签: c++ windows mingw sfml

在使用MinGW在Windows上使用SFML 2编译C ++项目时,我一直遇到错误。

C:\MinGW\include\处有包含Network.hpp的SFML头文件文件夹,我还将libsfml-[...].a个文件复制到C:\MinGW\lib\以及sfml-[...]-2.dll个文件中C:\MinGW\bin\

这是我的示例文件:

#include <iostream>
#include <SFML/System.hpp>
#include <SFML/Network.hpp>

int main(int argc, char** argv)
   {
   sf::TcpListener listener;

   listener.listen(4444);

   sf::TcpSocket client;

   std::cout << "Waiting for client to connect..." << std::endl;

   if (listener.accept(client) == sf::Socket::Done)
      {
      std::cout << "Client connected: " << client.getRemoteAddress() << std::endl;
      listener.close();
      }
   else
      {
      std::cout << "Client didnt connect" << std::endl;
      }

   return 0;
   }

如果我尝试使用以下命令编译它

g++ test.cpp -lsfml-system -lsfml-network

我收到这些错误:

C:\Users\me\AppData\Local\Temp\cc6XzH1R.o:test.cpp:(.text+0x28): undefined reference to `_imp___ZN2sf9IpAddress3AnyE`
C:\Users\me\AppData\Local\Temp\cc6XzH1R.o:test.cpp:(.text+0x3a): undefined reference to `_imp___ZN2sf11TcpListener6listenEtRKNS_9IpAddressE`

感谢您的帮助:D
   Matze

1 个答案:

答案 0 :(得分:0)

简单,尝试链接正确版本的库。 如果要制作x86应用程序,请使用32位版本的库,如果要制作x64应用程序,请使用64位版本。我也遇到了同样的错误,并且已修复。