使用 MinGW 编译具有网络代码的简单 C++ SFML 文件会引发错误"undefined reference to IpAddress"



我在使用 MinGW 在 Windows 上使用 SFML 2 编译C++项目时不断收到错误。

C:MinGWinclude有SFML头文件文件夹,包括Network.hpp,我还将libsfml-[...].a文件复制到C:MinGWlib以及sfml-[...]-2.dll文件复制到C:MinGWbin中。

这是我的示例文件:

#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:UsersmeAppDataLocalTempcc6XzH1R.o:test.cpp:(.text+0x28): undefined reference to `_imp___ZN2sf9IpAddress3AnyE`
C:UsersmeAppDataLocalTempcc6XzH1R.o:test.cpp:(.text+0x3a): undefined reference to `_imp___ZN2sf11TcpListener6listenEtRKNS_9IpAddressE`

感谢您的任何帮助:D
马策

很简单,尝试链接正确版本的库。如果要使 x86 应用使用 32 位版本的库,并且要使 x64 应用使用 64 位版本。我也得到了同样的错误,这已经修复了。

相关内容

最新更新