小编Neo*_*aru的帖子

CMake:在Windows中找不到<pthread.h>

我是CMake的新手.我在Linux上测试了我正在制作的程序.这个程序使用(POSIX Threads lib),所以在我的CMakeList中,我添加了:

find_package(Threads)
Run Code Online (Sandbox Code Playgroud)

它适用于Linux发行版(Arch,Mint,Ubuntu,...),但现在,我正在Windows32(Visual Studio 9 2008)中尝试它,我在生成过程中收到此消息:

-- Looking for include file pthread.h - not found
Run Code Online (Sandbox Code Playgroud)

(当我编译输出项目文件时,确实找不到pthread.h).

在Windows上,考虑"C:\ pthread"作为我的pthread目录,我在路径中定义:

  • "C:\ pthread\include"(驻留着名的"pthread.h")
  • "C:\ pthread \"(在CMake在某处寻找"包含"的情况下)

但我仍然得到相同的错误(即使删除缓存后).我知道我可以在我的Project中"手动"添加Pthread,或者在CMakeList.txt中定义一些常量,但我认为这不是CMake的原理:我可以在所有系统上使用SAME"CMakeList.txt",对吧?那么我怎么能告诉CMake"嘿!看这里!Pthread就在这个目录中!".也许Cmake没有查看PATH,但在另一个环境变量中,但我没有找到这些信息.

谢谢你的阅读.

编辑:我不知道它是否有所作为,但我的项目是一个C++项目(而不是C)

windows header pthreads cmake include

13
推荐指数
2
解决办法
3万
查看次数

使用C++对象Q_PROPERTY将Checkbox'checked'属性绑定

我正在学习QtQuick,我正在玩C++类和QML属性之间的数据绑定.

在我的C++对象模型中,我有两个属性:

Q_PROPERTY(QString name READ getName WRITE setName NOTIFY nameChanged)
Q_PROPERTY(bool status READ getStatus WRITE setStatus NOTIFY statusChanged)
Run Code Online (Sandbox Code Playgroud)

在我的.qml文件中:

TextEdit {
    placeholderText: "Enter your name"
    text: user.name
}

Checkbox {
    checked: user.status
}
Run Code Online (Sandbox Code Playgroud)

当我setName从我的C++代码更改用户名时,它会自动反映在视图中.当我选中/取消选中该复选框,或者当我setStatus()从我的C++代码调用时,没有任何反应.似乎checked复选框的属性与TextEdit组件的行为不同.

我不想以声明方式绑定我的属性.Qt Quick不支持属性绑定吗?

谢谢您的帮助.

c++ data-binding checkbox qt qt-quick

5
推荐指数
1
解决办法
4812
查看次数

WAMP.ws:如何管理安全和隐私?

我正在使用WAMP.ws规范在我的网站上设计公共/私人用户聊天室.

当我尝试保留所有连接用户的列表时,我的问题出现了.我能做什么:

  1. 所有用户都订阅"/ contacts/connections"主题.
  2. 当用户连接时,他发布带有"user_id"参数的"hello"消息,告诉其他用户他已连接.

- >但是我怎么能信任用户呢?任何用户都可以发送带有随机"user_id"参数的"Hello"消息.

对我来说,服务器必须在广播消息之前进行一些检查.但它是否符合WAMP.js规范?我已经读过,发布的消息总是由服务器广播.

另一种解决方案可能是使用RPC调用来连接用户.实际上,我这样做是为了验证用户身份.但是服务器可以自己向主题"/ contacts/connections"广播一个事件吗?(在RPC调用之后,而不是在"发布"消息之后)我已经读过该事件只是客户端"发布"的直接结果.此外,这不会阻止常规用户发送事件"/ contacts/connections"主题,这将由服务器广播.

我觉得我的两个解决方案(在广播之前检查已发布的消息,或者在RPC调用之后由服务器广播事件)都会破坏WAMP.js规范.我错了吗 ?

谢谢

privacy websocket node.js socket.io autobahn

4
推荐指数
1
解决办法
1043
查看次数