C++ c++;11个线程、SFML和代码::块
我试图使用c++11C++ c++;11个线程、SFML和代码::块,c++,multithreading,c++11,codeblocks,sfml,C++,Multithreading,C++11,Codeblocks,Sfml,我试图使用c++11std::thread和用于网络的SFML库来运行这段代码,但是我无法构建它。我很确定这与我如何设置编译器有关,但我不知道。。。我怎样才能让它工作?我已经花了好几个小时的时间在尝试让它工作,阅读教程之类的东西,所以我转向Stack Overflow寻求答案。我正在windows7 64位机器上使用code::blocks IDE和x32-4.8.1-posix-dwarf-rev5编译器 #include <iostream> #include <threa
std::thread
和用于网络的SFML库来运行这段代码,但是我无法构建它。我很确定这与我如何设置编译器有关,但我不知道。。。我怎样才能让它工作?我已经花了好几个小时的时间在尝试让它工作,阅读教程之类的东西,所以我转向Stack Overflow寻求答案。我正在windows7 64位机器上使用code::blocks IDE和x32-4.8.1-posix-dwarf-rev5编译器
#include <iostream>
#include <thread>
#include <string>
#include <SFML/System.hpp>
#include <SFML/Network.hpp>
using namespace std;
void doNetwork() {
cout << "Starting..." << endl;
sf::TcpListener listener;
listener.listen(88);
// Wait for a connection
sf::TcpSocket socket;
listener.accept(socket);
cout << "New client connected: " << socket.getRemoteAddress() << endl;
// Receive a message from the client
char buffer[1024];
size_t received = 0;
socket.receive(buffer, sizeof(buffer), received);
cout << "The client said: " << buffer << endl;
// Send an answer
string message = "Welcome, client";
socket.send(message.c_str(), message.size() + 1);
}
int main()
{
thread task(doNetwork);
task.join();
return 0;
}
其他选择:
-std=gnu++0x -U__STRICT_ANSI__
定义:
SFML_STATIC
链接器设置:
sfml-system-s-d
sfml-network-s-d
搜索目录-编译器:
C:\Users\user\CppProjects\SFML-2.1\include
C:\Users\user\CppProjects\bang\include
i686-w64-mingw32-c++.exe
windres.exe
搜索目录-链接器:
C:\Users\user\CppProjects\SFML-2.1\lib\
工具链可执行文件:
-编译器安装目录:
C:\Program Files (x86)\mingw-builds\x32-4.8.1-posix-dwarf-rev5\mingw32
-C编译器:
i686-w64-mingw32-gcc-4.8.1.exe
-C++编译器:
C:\Users\user\CppProjects\SFML-2.1\include
C:\Users\user\CppProjects\bang\include
i686-w64-mingw32-c++.exe
windres.exe
-动态库的链接器:
i686-w64-mingw32-c++.exe
-静态库的链接器:
ar.exe
-调试器:
gdb.exe
-资源编译器:
C:\Users\user\CppProjects\SFML-2.1\include
C:\Users\user\CppProjects\bang\include
i686-w64-mingw32-c++.exe
windres.exe
-制作程序:
mingw32-make.exe
我遇到了一个类似的问题,我是如何在Linux系统上解决这个问题的:项目/构建选项 转到“链接器设置”选项卡。 我在这里添加了:sfml网络 完成了。
希望它有助于如果您没有链接包含这些符号的sfml库,则可能会复制这些符号。请参阅sfml文档。我的全局链接器设置中有:C:\Users\user\CppProjects\sfml-2.1\lib\sfml-network-s-d.lib C:\Users\user\CppProjects\sfml-2.1\lib\sfml-system-s-d.lib和我的搜索目录中的链接器:C:\Users\user\CppProjects\sfml-2.1\lib\这些是否正确?@user1924,查看一些代码块文档会告诉您需要
sfml-network-s-d
和sfml-system-s-d
。我已将链接器设置更改为sfml-network-s-d和sfml-system-s-d,但在构建时会遇到完全相同的错误