c – 如果有std :: thread,Visual Studio 2017 linux无法编译
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c – 如果有std :: thread,Visual Studio 2017 linux无法编译,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1313字,纯文字阅读大概需要2分钟。
内容图文
![c – 如果有std :: thread,Visual Studio 2017 linux无法编译](/upload/InfoBanner/zyjiaocheng/965/0bb06f7ff36648dd895bbda1c50060c0.jpg)
所以我正在尝试使用Visual Studio 2017创建一个Linux项目.
我开始使用Empty Linux Project(作为项目模板),到目前为止一切都很好.
但是,如果我有
// Create a new thread for the connection to avoid clutter
std::thread newConnectionHandler(connectionHandler, iNewConnection);
newConnectionHandler.detach();
在我的代码中,它不会编译.这些是我得到的错误:
Error E0020 identifier "__float128" is undefined
Error In function `std::thread::thread<void(&)(int), int&>(void(&)(int), int&)':
Error undefined reference to `pthread_create'
Error ld returned 1 exit status
但是一旦我注释掉std :: thread的东西,它就会编译.
这是我到目前为止所尝试的:
> C/C++ – >附加选项 – >添加了-pthread -lpthread或只是-pthread
>链接器 – >附加选项 – >添加了-pthread -lpthread或只是-pthread
>链接器 – >图书馆依赖关系 – >添加了线程
>在C 17和C 11之间切换C语言标准
当然,我已尝试过这些变化的多种变体,但我总是得到同样的错误.
我的包括:
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <string>
#include <thread>
编辑:
这里也是connectionHandler的声明:
void connectionHandler(int iConnection)
传递iNewConnection时,数据类型为int.
解决方法:
将-pthread选项放入链接器 – >命令行 – >其他选项,它也应该是所有对象和库文件之后的链接命令行中的最后一个.
订单很重要.
内容总结
以上是互联网集市为您收集整理的c – 如果有std :: thread,Visual Studio 2017 linux无法编译全部内容,希望文章能够帮你解决c – 如果有std :: thread,Visual Studio 2017 linux无法编译所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。