广告

本站里的文章大部分经过自行整理与测试

2017年9月19日星期二

自动生成 configure 和 Makefile

1) 编写 helloworld.c

#include <stdio.h>
    
int main(int argc, char** argv)
{
      printf("Hello, Linux World! ");
      return 0;
}

2) 生成 configure.scan, 改名为 configure.ac

2.1) 扫描源代码目录, 生成 configure.scan
$ autoscan

2.2) 改名为 configure.ac
$ mv configure.scan configure.ac

2.3) 编辑 configure.ac
$ vi configure.ac

AC_INIT(helloworld.c)

AM_INIT_AUTOMAKE(helloworld, 1.0)

AC_PROG_CC

AC_OUTPUT(Makefile)

3) 生成 aclocal.m4 和 configure

3.1) 生成 aclocal.m4
$ aclocal

3.2) 生成 configure
$ autoconf 

4) 编写 Makefile.am

$ vi Makefile.am

AUTOMAKE_OPTIONS=foreign
bin_PROGRAMS=helloworld
helloworld_SOURCES=helloworld.c

5) 生成 Makefile

$ automake --add-missing

6) 测试

$ ./configure
$ make
$ ./helloworld

2017年9月17日星期日

Git - 免户口与密码重复输入

1) 产生公钥 (id_rsa.pub) 与私钥 (id_rsa), 放到 .ssh

$ cd ~/.ssh
$ ssh-keygen -t rsa -C "钥匙名字"
Generating public/private rsa key pair.
Enter file in which to save the key (/home/UID/.ssh/id_rsa): id_rsa 文件名
Enter passphrase (empty for no passphrase): 设置密码
Enter same passphrase again: 重复以上密码

2) 将公钥放去 github

登录 https://github.com/settings/ssh
添加 ~/.ssh/id_rsa.pub 公钥内容

3) 测试

$ git clone git@github.com:户口名/仓库名.git

* 第一次用 ssh 连接 github.com 会要求输入以上设置的密码.

4) 其它

之前已经 clone 的, 可修改 remote url
$ git remote set-url origin git@github.com:户口名/仓库名.git

2017年9月10日星期日

Git - branch / tag

1) 分支管理 (branch)

$ git branch                         查看分支
$ git branch <name>           创建分支
$ git checkout <name>        切换分支

$ git checkout -b <name>    创建 + 切换分支
$ git merge <name>            合拼分支
$ git branch -d <name>  删除分支

2) 操作修改和版本穿梭

$ git log

$ git reset HEAD 暂存区的目录树会被重写,被 master 分支指向的目录树所替换,但是工作区不受影响
$ git reset --hard <revision> 重置至某一版本 (强制,暂存区和工作区均重置)
$ git reset --hard HEAD^, 则回滚为上一版本
$ git reflog 显示操作的日志
$ git rm --cached <file> 会直接从暂存区删除文件,工作区则不做出改变
$ git checkout -- <file1> <file2> 会将文件在工作区的修改撤销

$ git checkout HEAD . 或者 git checkout HEAD <file
会用 HEAD 指向的 master 分支中的全部或者部分文件替换暂存区和以及工作区中的文件。
这个命令是极具危险性的,因为不但会清除工作区中未提交的改动,也会清除暂存区中未提交的改动

3) 标签管理 (tag)

$ git tag                 查看标签 
$ git tag <name> <commit_id>     创建标签, 若无commit id 默认当前
$ git tag -a <name> -m <msg>         创建标签, 且添加标签信息
$ git tag -s <name> -m <msg>         创建签名标签,且添加标签信息
$ git tag -d <name> -m <msg>         删除标签
$ git show <name>                         查看标签具体信息

$ git push origin <name>                  推送某个标签至远程
$ git push origin --tags                    推送所有标签至远程