在等待系统管理员设置gerrit repo时,我创建了自己的分支.他刚刚给我发了回购地址.我把它设置为原点并以某种方式推动了我的最后一次提交.克隆repo工作正常,但不git branch -r返回任何内容.这里发生了什么?
$ git init
# made some comits
git config remote.origin.url ssh://gerrit.mm-sol.com/branchname
$ git push origin SH1-of-my-last-commit:master
error: unable to push to unqualified destination: master
The destination refspec neither matches an existing ref on the remote nor
begins with refs/, and we are unable to guess a prefix based on the source ref.
error: failed to push some refs to 'ssh://gerrit.mm-sol.com/apps/phone-shaker'
$ git push origin master
Counting objects: 85, done.
Delta compression using …Run Code Online (Sandbox Code Playgroud) 我正在尝试升级到yagarto4.7.2(又一个GNU ARM工具链,对于那些想知道的人),这是gcc和binutils,移植到Windows.但是,尝试编译简单的Hello World会产生:
c:/yagarto-20121222/bin/../lib/gcc/arm-none-eabi/4.7.2/../../../../arm-none-eabi
/bin/ld.exe: cannot find crt0.o: No such file or directory
collect2.exe: error: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)
现在,在这个论坛中,很明显这是启动初始化库,在gcc4.6.x之后被删除了.提出了两种解决方案:
对于生产代码来说,两者看起来都很脏并且不可接受.那么有谁知道为什么这个库被删除了,它现在的等价物是什么?
在C++ 11中,人们可以做到
struct S {int i = 42;};
Run Code Online (Sandbox Code Playgroud)
每当忘记初始化成员i时,它会默认初始化为42.我只是尝试使用bitfields作为
struct S {int i = 42 : 5;};
Run Code Online (Sandbox Code Playgroud)
而且我正在
错误:预期';' 在':'标记之前
对于位域成员是否存在此功能,如果存在,我该如何使用它?
ProjFolder
\
Subfolder
sources.cpp
makefile
makefile
Run Code Online (Sandbox Code Playgroud)
Subfolder应该是一个单独的外部存储库,在检查项目时拉入。当我调用make all顶级 makefile 时,将执行以下配方:
all: $(NAME).elf $(NAME).s19 $(NAME).hex
$(NAME).elf: $(OBJECTS) $(LDSCRIPT) Subfolder/lib.a
make -C CppAudioPeriphs all
@ echo "...linking"
$(CC) $(OBJECTS) Subfolder/lib.a $(LDFLAGS) $(LIBS) -o $@
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,如果Subfolder文件的最终产品lib.a发生更改,Subfolder则会调用 makefile 来重新制作它,然后所有产品都会链接到最终的 Flash 映像中。
问题是顺序。我想总是首先调用子makefile。它知道何时以及如何重制lib.a。然后检查是否lib.a被修改以确定是否重新制作$(NAME).elf。
这是一种解决方案。
.PHONY all $(NAME).elf
Run Code Online (Sandbox Code Playgroud)
这只是指示make无论如何都要重新制作 $(NAME).elf 。我过去曾在小型项目中使用过这种解决方案,但对于当前的项目来说,这是不可接受的。
当其中一个UNIX系统函数发生错误时,通常会返回负值,并将整数
errno设置为一个值,从而提供其他信息. - UNIX环境中的高级编程,第1.7节
这看起来很奇怪:
errno需要是线程本地的.errno哪个也是另一个函数调用.为什么不在返回值中编码错误状态?
#include <iostream>
struct A
{
virtual void foo(){ std::cout << "A"; };
};
struct B : public A
{
private:
void foo() override { std::cout << "B"; }
};
int main()
{
A *p = new B;
p->foo(); // prints B
// B b;
// b.foo(); // error: foo is private
return 0;
}
// g++ -std=c++11 -Wall -Wextra -Wpedantic main.cpp && ./a.out
Run Code Online (Sandbox Code Playgroud)
所以我们可以B.foo()多态地调用,但不能直接调用.当有人想要使用此功能时,是否有任何用例?
Haskell新手在这里.我从类型类中知道=>"在上下文中".但是,我无法读取模块Statistics.Sample中的以下类型
(Vector v (Double, Double), Vector v Double) => v (Double, Double) -> Double
Run Code Online (Sandbox Code Playgroud)
v左边有什么限制条件=>?
枚举值何时解析?换句话说,以下代码片段是否符合标准?
enum{
A,
B,
MAX
}
#if MAX > 42
# error "Woah! MAX is a lot!"
#endif
Run Code Online (Sandbox Code Playgroud) §6.5.8\ 6(关于>,<,<=,> =)
如果表达式P指向数组对象的元素并且表达式Q指向同一数组对象的最后一个元素,则指针表达式Q + 1比P大.在所有其他情况下,行为未定义.
上面的几节,§6.5.8,基本上解释了指针算法在数组上的预期工作.那int a[3]; int *p = a; int *q = &a[2]; //q-p == 3是有效的.但是,正如我上面读到的那样q > p是UB.
我错过了什么?