我是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目录,我在路径中定义:
但我仍然得到相同的错误(即使删除缓存后).我知道我可以在我的Project中"手动"添加Pthread,或者在CMakeList.txt中定义一些常量,但我认为这不是CMake的原理:我可以在所有系统上使用SAME"CMakeList.txt",对吧?那么我怎么能告诉CMake"嘿!看这里!Pthread就在这个目录中!".也许Cmake没有查看PATH,但在另一个环境变量中,但我没有找到这些信息.
谢谢你的阅读.
编辑:我不知道它是否有所作为,但我的项目是一个C++项目(而不是C)
我正在学习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不支持属性绑定吗?
谢谢您的帮助.
我正在使用WAMP.ws规范在我的网站上设计公共/私人用户聊天室.
当我尝试保留所有连接用户的列表时,我的问题出现了.我能做什么:
- >但是我怎么能信任用户呢?任何用户都可以发送带有随机"user_id"参数的"Hello"消息.
对我来说,服务器必须在广播消息之前进行一些检查.但它是否符合WAMP.js规范?我已经读过,发布的消息总是由服务器广播.
另一种解决方案可能是使用RPC调用来连接用户.实际上,我这样做是为了验证用户身份.但是服务器可以自己向主题"/ contacts/connections"广播一个事件吗?(在RPC调用之后,而不是在"发布"消息之后)我已经读过该事件只是客户端"发布"的直接结果.此外,这不会阻止常规用户发送事件"/ contacts/connections"主题,这将由服务器广播.
我觉得我的两个解决方案(在广播之前检查已发布的消息,或者在RPC调用之后由服务器广播事件)都会破坏WAMP.js规范.我错了吗 ?
谢谢