小编Aus*_*yde的帖子

QtCreator构建返回collect2:ld返回退出状态1

在QtCreator中构建多个不同的项目时,我遇到了以下构建错误:

collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

在仅更改了一些内容(不应该更改构建中的任何重要内容)之后,如果它已经出现,它将会消失,或者如果它不存在则会出现.

在我目前的学校项目计划中,我正在尝试编译rock03.cpp.它是构建中唯一的文件,并且具有main()方法.我刚刚成功运行它,并回去改变某些if()s 的顺序,现在,我只得到两个相关的警告:

overriding commands for target 'rock03.o'
Run Code Online (Sandbox Code Playgroud)

ignoring old commands for target 'rock03.o'
Run Code Online (Sandbox Code Playgroud)

以及有问题的错误.

有谁知道为什么会这样?我似乎无法以任何合理的确定性重现错误,并且QtCreator在构建之前并没有抱怨任何事情.

谢谢

c++ ld qt-creator

8
推荐指数
3
解决办法
4万
查看次数

功能JavaScript:如何实现Function.prototype.not

我今天早些时候正在研究一些代码,当时我意识到,"嘿!如果我抽象出一个不是匿名函数的布尔的概念并且进入原型函数,那么这段代码会更简洁和语义化......"

考虑一个谓词生成器:

function equalTo(n) {
    return function(x) {
        return n==x;
    };
}
Run Code Online (Sandbox Code Playgroud)

所以你可以像这样使用它:

[1,2,3,4,1,2,3,4].filter(equalTo(2)) == [2,2]
Run Code Online (Sandbox Code Playgroud)

现在,我的想法是使谓词"反转":

Function.prototype.not = function() {
    //???
}
Run Code Online (Sandbox Code Playgroud)

这样你就可以说:

[1,2,3,4,1,2,3,4].filter(equalTo(2).not) == [1,3,4,1,3,4]
Run Code Online (Sandbox Code Playgroud)

我对实现的第一次尝试可能非​​常天真:

Function.prototype.not = function () {
    return ! this(arguments);
}
Run Code Online (Sandbox Code Playgroud)

也许它为什么不起作用.

你将如何实现这个功能,为什么?

我只是试图围绕功能性想法,并且知道JavaScript足以知道它可以用来做到这一点,但不是如何.

javascript functional-programming

7
推荐指数
1
解决办法
2134
查看次数

按表格数据三次分组 - 如何显示?

我需要在网站上的表格中显示一堆数据作为报告的一部分.问题是它有很多,它需要在视觉上分组.

每条数据都是项目的"用法",并且具有日期(表示何时使用),商店编号(对应于使用它的商店),项目名称(使用的项目),以及数量(使用的项目数量).

用户可以选择按项目分组,然后存储或按商店,然后是项目.在幕后,我也会按日期分组.

报告需要按项目/商店(取决于分组选项)和日期以及总和的总和来计算数量.

问题是,我不确定如何显示它.我现在能想到的最好的就像是

                           ++------+------+------+------++-----+
                           || date | date | date | date || sum |
+-----------+--------------||======+======+======+======||=====+---+
| Item Name | Store Number ||  1   |  2   |  3   |  4   ||  10 | ^ |
|           +--------------||------+------+------+------||-----|---|
|           | Store Number ||  5   |  6   |  7   |  8   ||  26 | # |
|           +--------------||------+------+------+------||-----| # |
|           | Store Number ||  9   |  10  |  11  |  12  ||  42 | # |
|           +--------------||------+------+------+------||-----|   | …
Run Code Online (Sandbox Code Playgroud)

html user-interface html-table

7
推荐指数
1
解决办法
126
查看次数

使用SublimeCodeIntel和RVM,在Sublime Text 2中使用Ruby Gems自动完成

我整个上午一直在努力(不成功)从Sublime Text 2获取SublimeCodeIntel(从Komodo的CodeIntel功能分叉)插件,以便从已安装的Ruby Gems中自动完成内容,并与我的Mac上的(或没有)RVM结合使用.内置的东西似乎没有任何问题,甚至没有任何问题,但它似乎无法拿起任何宝石.

使用RVM,我安装了Ruby 1.9.3,然后安装了全局gemset,安装了Mustache:

$ rvm install 1.9.3
$ rvm --default use 1.9.3
$ gem install mustache
$ irb
>> require 'mustache'
=> true
Run Code Online (Sandbox Code Playgroud)

到目前为止一切都很好.现在我启动Sublime,安装SublimeCodeIntel,然后创建一个文件.require '然后键入CMD + J会产生弹出窗口,如预期的那样,带有可用的模块/目录.但是,mustache不是其中之一.(喜欢的事情abbrev,base64rake是,虽然)

我检查CodeIntel配置,发现它仍在使用系统ruby,所以我切换它:

{
  "Ruby": {
    "ruby": "~/.rvm/bin/default_ruby"
  }
}
Run Code Online (Sandbox Code Playgroud)

仍然没有骰子.我换回系统红宝石,在那里安装胡子,再次尝试,没有运气.

切换回来后,我意识到CodeIntel可能找不到文件,即使ruby可以,所以我明确地将gem bin目录添加到配置文件中:

"rubyExtraPaths":["~/.rvm/gems/ruby-1.9.3-p0/bin"]
Run Code Online (Sandbox Code Playgroud)

它仍然无效.

现在,我仍然是使用Ruby,Gems和RVM的初学者,所以也许我错过了一些非常明显的东西,但我确实查看了我能找到的所有文档,但没有找到任何内容. .

有没有人知道这里可能有什么问题?

rubygems sublimetext

7
推荐指数
1
解决办法
4116
查看次数

在PHP中访问父属性和重写方法

我有以下父母和子课程:

abstract class ParentObj {
    private $data;
    public function __construct(){
        $this->data = array(1,2,3);
        var_dump($this->data);

        $this->method();
    }
    public function method(){
        echo "ParentObj::method()";
    }
}
class ChildObj extends ParentObj {
    public function __construct(){
        parent::__construct();
        var_dump($this->data);
    }
    public function method(){
        echo "ChildObj::method()";
    }
}
Run Code Online (Sandbox Code Playgroud)

预期产量:

array(1,2,3)
ChildObj::method()
array(1,2,3)
Run Code Online (Sandbox Code Playgroud)

实际输出:

array(1,2,3)
ParentObj::method()
NULL
Run Code Online (Sandbox Code Playgroud)

问题是,子对象无法访问数据属性,父对象拒绝调用子进程中的重写方法.

我做错了什么,或者有没有任何想法?

编辑:我应该澄清我正在实例化ChildObj$child = new ChildObj()

php oop inheritance

6
推荐指数
2
解决办法
6604
查看次数

Mercurial中的小型临时分支

我已经阅读了很多关于Mercurial和分支的内容,但是,我仍然是一个版本控制新手.

我正在开展一个项目,我的任务是开发一个新模块.

我有一个"主"存储库,其中包含项目其余部分的最新代码,以及一个克隆的存储库(称之为"任务"),我现在在这里工作.

我是一堆提交到我的任务中,发现我想用我的程序读取/存储/处理配置数据的方式进行一些"实验".

现在,如果我正确理解VC最佳实践,那么这将是一个分支的好时机.

如果我开始进行这个实验,并且我喜欢它的发展方向,我会想要将它快速合并回"默认"分支上的"任务"存储库.

另一方面,如果我不喜欢它的发展方式,我可能只是废弃分支.

我最熟悉的分支方式是通过克隆,但我不认为这将是这种情况下的最佳方法,因为我只会更改一些文件,但显然使用命名分支是永久性的,这不是在这里看似合适.

对于这种情况,您有什么建议/最佳做法?

mercurial branch

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

用于查找未终止字符串的正则表达式

我需要在CSV文件中搜索以未终止的双引号字符串结尾的行.

例如:

1,2,a,b,"dog","rabbit
Run Code Online (Sandbox Code Playgroud)

会匹配而

1,2,a,b,"dog","rabbit","cat bird"
1,2,a,b,"dog",rabbit
Run Code Online (Sandbox Code Playgroud)

不会.

我对正则表达式的经验非常有限,我唯一能想到的就是这样

"[^"]*$
Run Code Online (Sandbox Code Playgroud)

但是,这会将最后一个引号与行尾相匹配.

怎么做?

regex text-processing

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

PHP MVC:如何尽早退出动作/控制器?

在PHP MVC框架,我怎么能干净优雅来自电流控制器/动作退出,而是继续正常执行脚本?

例如,假设我的框架通常遵循以下大纲:

  1. 将URL映射到Controller/Action
  2. 实例化Controller,调用Action(捕获输出)
    1. 做东西
    2. 渲染视图
    3. 在Action方法结束时,继续正常操作
  3. 必要时处理输出
  4. 将输出发送到浏览器

现在,让我们说,我想阻止"正常"执行中"做的东西"的步骤,比方说某个地方,呈现了不同的看法,或者做一个头重定向,我想停止处理动作的身体的其余部分,但继续进行"过程输出"步骤

我怎样才能以最好的方式实现这一目标?我唯一的想法是:

//in controller
protected function redirect($url) {
    header("Location: $url");
    exit();
}
Run Code Online (Sandbox Code Playgroud)

但这完全忽略了框架执行的其余部分,并将输出缓冲区中的任何内容直接转储给用户.替代:

//in dispatcher
call_user_func_array(array($controller,$action),$params);
afterwards:
...

//in controller
protected function redirect($url) {
    header("Location: $url");
    goto afterwards;
}
Run Code Online (Sandbox Code Playgroud)

然而,这使我抽搐,并违背一切我已经学会了,特别是因为它引用的标签在另外的文件完全.

那么,有没有其他方法来实现这一目标?

注意:重定向示例可能应该使用exit()方式,因为我们只是重定向到另一个页面而不关心输出.我正在寻找一种通用的解决方案.

php model-view-controller

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

Mercurial:修复一个borked历史

所以最近在一个项目上工作(由我自己 - 没有其他开发人员),我以某种方式设法严重地将历史记录与克隆的存储库中的一些(显然)坏的合并.

我想做的 - 需要做的 - 只需删除最后8次提交即可解决此问题(根据hg glog)

是的,我在borking开始之后对代码进行了一些更改,但是,这里或那里只进行了一些调整 - 没有什么我无法从内存中修复.

我怎样才能摆脱最后的8次提交并从我搞砸的地方重新开始?

mercurial

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

Javascript:使用其他功能重新分配功能

假设我有这两个功能:

function fnChanger(fn) {
    fn = function() { sys.print('Changed!'); }
}
function foo() {
    sys.print('Unchanged');
}
Run Code Online (Sandbox Code Playgroud)

现在,如果我打电话foo(),我看到Unchanged,正如预期的那样.但是,如果我fnChanger先打电话,我仍然会看到Unchanged:

fnChanger(foo);
foo(); //Unchanged
Run Code Online (Sandbox Code Playgroud)

现在,我认为这是因为foo没有fnChanger通过引用传递,但我可能是错的.

为什么不fnChangerfoo印刷Changed!
此外,如何fnChangerfoo没有太多凌乱的语法的情况下进行更改?

PS:我正在使用node.js来测试所有这些东西,所以这就是它的sys.print来源.

javascript closures function pass-by-reference

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