在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在构建之前并没有抱怨任何事情.
谢谢
我今天早些时候正在研究一些代码,当时我意识到,"嘿!如果我抽象出一个不是匿名函数的布尔的概念并且进入原型函数,那么这段代码会更简洁和语义化......"
考虑一个谓词生成器:
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足以知道它可以用来做到这一点,但不是如何.
我需要在网站上的表格中显示一堆数据作为报告的一部分.问题是它有很多,它需要在视觉上分组.
每条数据都是项目的"用法",并且具有日期(表示何时使用),商店编号(对应于使用它的商店),项目名称(使用的项目),以及数量(使用的项目数量).
用户可以选择按项目分组,然后存储或按商店,然后是项目.在幕后,我也会按日期分组.
报告需要按项目/商店(取决于分组选项)和日期以及总和的总和来计算数量.
问题是,我不确定如何显示它.我现在能想到的最好的就像是
++------+------+------+------++-----+
|| 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) 我整个上午一直在努力(不成功)从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,base64和rake是,虽然)
我检查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的初学者,所以也许我错过了一些非常明显的东西,但我确实查看了我能找到的所有文档,但没有找到任何内容. .
有没有人知道这里可能有什么问题?
我有以下父母和子课程:
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()
我已经阅读了很多关于Mercurial和分支的内容,但是,我仍然是一个版本控制新手.
我正在开展一个项目,我的任务是开发一个新模块.
我有一个"主"存储库,其中包含项目其余部分的最新代码,以及一个克隆的存储库(称之为"任务"),我现在在这里工作.
我是一堆提交到我的任务中,发现我想用我的程序读取/存储/处理配置数据的方式进行一些"实验".
现在,如果我正确理解VC最佳实践,那么这将是一个分支的好时机.
如果我开始进行这个实验,并且我喜欢它的发展方向,我会想要将它快速合并回"默认"分支上的"任务"存储库.
另一方面,如果我不喜欢它的发展方式,我可能只是废弃分支.
我最熟悉的分支方式是通过克隆,但我不认为这将是这种情况下的最佳方法,因为我只会更改一些文件,但显然使用命名分支是永久性的,这不是在这里看似合适.
对于这种情况,您有什么建议/最佳做法?
我需要在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)
但是,这会将最后一个引号与行尾相匹配.
怎么做?
在PHP MVC框架,我怎么能干净和优雅来自电流控制器/动作退出,而是继续正常执行脚本?
例如,假设我的框架通常遵循以下大纲:
现在,让我们说,我想阻止"正常"执行中"做的东西"的步骤,比方说某个地方,呈现了不同的看法,或者做一个头重定向,我想停止处理动作的身体的其余部分,但继续进行"过程输出"步骤
我怎样才能以最好的方式实现这一目标?我唯一的想法是:
//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()方式,因为我们只是重定向到另一个页面而不关心输出.我正在寻找一种通用的解决方案.
所以最近在一个项目上工作(由我自己 - 没有其他开发人员),我以某种方式设法严重地将历史记录与克隆的存储库中的一些(显然)坏的合并.
我想做的 - 需要做的 - 只需删除最后8次提交即可解决此问题(根据hg glog)
是的,我在borking开始之后对代码进行了一些更改,但是,这里或那里只进行了一些调整 - 没有什么我无法从内存中修复.
我怎样才能摆脱最后的8次提交并从我搞砸的地方重新开始?
假设我有这两个功能:
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通过引用传递,但我可能是错的.
为什么不fnChanger换foo印刷Changed!?
此外,如何fnChanger在foo没有太多凌乱的语法的情况下进行更改?
PS:我正在使用node.js来测试所有这些东西,所以这就是它的sys.print来源.
javascript ×2
mercurial ×2
php ×2
branch ×1
c++ ×1
closures ×1
function ×1
html ×1
html-table ×1
inheritance ×1
ld ×1
oop ×1
qt-creator ×1
regex ×1
rubygems ×1
sublimetext ×1