小编use*_*573的帖子

如何在Qt subdir项目中设置构建顺序

我有一个包含5-6个库和一个可执行文件的项目.可执行文件取决于库,某些库依赖于其他库.如何指定构建顺序,以便在需要之前构建依赖项?

qt build-process qmake build

18
推荐指数
2
解决办法
7129
查看次数

Qt5找不到平台插件Mac OS X.

我正在尝试根据此链接在Mac上部署Qt程序.在我的可执行文件和它所依赖的所有库(我复制到应用程序包中)中使用otool -L之后,当我尝试运行它时,我在QtCreator的应用程序输出中出现此错误.

此应用程序无法启动,因为它无法找到或加载Qt平台插件"cocoa".

重新安装应用程序可能会解决此问题.该计划意外完成.

我试图复制QT平台插件libqcocoa.dylib和改变qt.conf plugins目录,根据这个,但它仍然失败.

另外值得指出的是,我首先尝试使用qt的macdeployqt工具,但它失败了这条消息,尽管我是第一次在可执行文件上运行它:

错误:找不到"MyProgram.app/Contents/MacOS/MyProgram"的包二进制错误:"otool:无法打开文件:(没有这样的文件或目录)"

警告:

警告:在"MyProgram.app/Contents/MacOS/MyProgram"中找不到要部署的任何外部Qt框架

警告:也许macdeployqt已用于"MyProgram.app/Contents/MacOS/MyProgram"?

警告:如果是这样,您需要在重试之前重建"MyProgram.app/Contents/MacOS/MyProgram".错误:找不到"MyProgram.app/Contents/MacOS/MyProgram"的包二进制文件

错误:文件复制失败,来自"/Developer/Applications/Qt/plugins/platforms/libqcocoa.dylib"

错误:到"MyProgram.app/Contents/MacOS/MyProgram/Contents/PlugIns/platforms/libqcocoa.dylib"

错误:文件复制失败,来自"/Developer/Applications/Qt/plugins/printsupport/libcocoaprintersupport.dylib"

错误:"MyProgram.app/Contents/MacOS/GraphiteMiniEditor/Contents/PlugIns/printsupport/libcocoaprintersupport.dylib"

c++ macos qt

13
推荐指数
1
解决办法
7047
查看次数

visual c ++为什么std :: move崩溃

我想在另一个向量的末尾追加一个向量.据我所知,该功能std::move()是此任务的"选择功能".为什么std::move()在手工制作的循环按预期工作时,Microsoft Visual C++ Express会崩溃?

我使用的是Microsoft Visual C++ 2015 Update 3.不幸的是,我无法使用其他编译器对此进行测试.

// The setup code for the two vectors:
vector<unique_ptr<channel>> channels, added_channels;

// ...  here is some code that adds some elements to both vectors
Run Code Online (Sandbox Code Playgroud)

根据我的知识,以下两段代码应该以相同的方式工作.他们应该把元素added_channels移到最后channels.

这是第一个崩溃的变种:

std::move(added_channels.begin(), added_channels.end(), channels.end());
Run Code Online (Sandbox Code Playgroud)

这是第二个有效的版本:

for(auto & ref : added_channels)
{
    channels.push_back(std::move(ref));
}
Run Code Online (Sandbox Code Playgroud)

c++ stdvector visual-c++ c++11

7
推荐指数
2
解决办法
485
查看次数

使用boost :: spirit将其解析为vector <vector <double >>

我的目的是将逗号分隔的值列表解析为嵌套向量.这个清单是二维的.基本问题是:

是否可以使用boost :: spirit解析为向量的向量?

像"牵引"下的表格:

' 
' RPM
0,5000,10000,15000,20000,25000
'
' Temp
'
-40.,0.,20.,40.
'
' Traction
200.,175.,170.,165.,160.,150.
200.,175.,170.,165.,160.,150.
165.,165.,160.,155.,145.,145.
160.,155.,150.,145.,145.,140.
'
Run Code Online (Sandbox Code Playgroud)

在接下来的步骤中,我想阅读4维数据,但是现在我正在努力解决第二个问题.数据结构如下:

struct table {
    std::vector<double>  index;
    std::vector<double>  index2;
    std::vector<std::vector<double> > base;
};
Run Code Online (Sandbox Code Playgroud)

语法是恕我直言,非常简单如下:

comment %= qi::lexeme[ '\'' >> *(qi::standard::char_ - qi::eol)] >> qi::eol;
commentblock = comment >> *(comment);
doublevector = qi::double_ % ',' >> qi::eol ;
vectorblock = *doublevector;
start = commentblock            >>
        doublevector            >>
        commentblock            >>
        doublevector            >>
        commentblock            >>
        vectorblock             >>
        commentblock            >>
        qi::eoi
        ;
Run Code Online (Sandbox Code Playgroud)

到目前为止,我解析这两个向量 …

c++ boost boost-spirit stdvector

6
推荐指数
1
解决办法
442
查看次数

使用boost :: karma来格式化纬度/经度字符串

我需要将double值格式化为具有非常特定格式的坐标字符串,"DDMMSS.SSX"其中:

  • "DD"是完整的学位
  • "MM"是完整的分钟
  • "SS.SS"是分数的秒数
  • 取决于半球,"X"是"N"或"S"

字段需要用零填充.空间不能被接受.格式化示例如下:

47.2535 ==> "471512.45N"
-0.123345 ==> "000724.04S"
Run Code Online (Sandbox Code Playgroud)

我已设法创建以下程序来完成这项工作.不过我有一些问题:

  • 这条locls规则有更优雅的方式吗?它的目的是将绝对值存储到局部变量中value.是否有(希望更优雅)的方式来访问该fabs()功能?
  • 在我看来,_1(_1 = _val等)的赋值是不必要的,因为我在局部变量中有值value.但是,如果我删除这些作业,我得到的只是"000000.00N".
  • 这种格式化的"主力"是int_生成器,我在计算和转换原始数据后使用它value.有更好的方法吗?
  • 对于这类问题,通常有更好的解决方案吗?

我很乐意收到一些反馈意见

#include <boost/spirit/include/karma.hpp>
#include <boost/spirit/include/phoenix.hpp>
#include <boost/lambda/lambda.hpp>
#include <boost/bind.hpp>

namespace karma = boost::spirit::karma;

typedef std::back_insert_iterator<std::string> iterator_type;

struct genLongitude : karma::grammar<iterator_type, double()>
{
    genLongitude()
        :   genLongitude::base_type(start)
    {
        using karma::eps;
        using karma::int_;
        using karma::char_;
        using karma::_1;
        using karma::_val;
        using karma::right_align;
        using boost::phoenix::static_cast_;
        using …
Run Code Online (Sandbox Code Playgroud)

c++ string-formatting boost-spirit coordinates

5
推荐指数
2
解决办法
353
查看次数