• 做一个幸福的人,读书,旅行,努力工作,关心身体和心情。
  • 不管有没有人爱,也要努力做一个可爱的人。不埋怨谁,不嘲笑谁,也不羡慕谁,阳光下灿烂,风雨中奔跑,做自己的梦,走自己的路。

使用Visual Studio遇到的编译问题

C/C++ lcq 3年前 (2015-06-03) 851次浏览 0个评论

记录一下最近使用QtCreator开发中遇到的一些编译问题,供以后自己查阅。


编译问题:该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失。

问题描述:可恶的编码问题。

解决办法:打开有warning的文件。文件–>高级保存项–>简体中文(GB2312)- 代码页936。(选择合适的编码项)。参考链接。具体操作如下图:

当然,有的时候你不想进行格式转换,但是又不想每次看到这些恼人的警告信息,还可以这样做:①在Project -> Properties -> Configuration Properties -> C/C++ -> Advance 的 Disable Specific Warnings 中添加相应的警告编号:4819;②或找出不符合Unicode格式的文件,然后在该文件的开始处加入下面的语句: # pragma warning (disable:4819)。


编译问题:error LNK2001: 无法解析的外部符号 "public: virtual struct QMetaObject const * __thiscall Subscriber::metaObject(void)const " (?metaObject@Subscriber@@UBEPBUQMetaObject@@XZ)

问题描述:我跟别人的合并完成之后,出现了这个无法解析的外部符号链接错误。但是引用那个文件按F12能正常跳转。但是没有加到Header Files文件夹下面去。

解决办法:由于我是使用Qt,可以看一下是否生成了moc文件,如果没有生成,那么肯定是Qt没有识别这个文件或者没有将这个文件加到项目中。我将文件添加到Header Files文件下面就恢复正常了。


编译问题:error LNK2001: 无法解析的外部符号 "private: static class QMultiMap<class QString,double> AlgoChildOrderPlotData::marketPrice" (?marketPrice@AlgoChildOrderPlotData@@0V?$QMultiMap@VQString@@N@@A)

问题描述:我在AlgoChildOrderPlotData类里面定义了一个static变量marketPrice,可没有初始化。

解决办法:初始化在类里面定义的static变量即可。


编译问题:error LNK2001: 无法解析的外部符号 "public: static class QMap<class QString,double> AlgoChileOrderPlotData::marketPrice" (?marketPrice@AlgoChileOrderPlotData@@2V?$QMap@VQString@@N@@A)error C2243: “类型转换”: 从“const AlgoChileOrderPlotData *”到“const QObject *”的转换存在,但无法访问。

问题描述:使用Visual Studio类向导生成的一个类,由于需要使用信号槽,所以我继承了类QObject。但是Visual Studio 默认继承是私有的,即:class AlgoChildOrderPlotData : QObject。

解决办法:使用公有继承即可,改为:class AlgoChildOrderPlotData : public QObject。



乐趣公园 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明使用Visual Studio遇到的编译问题
喜欢 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址