Posts

Mac版Rider加载、编译.Net失败,Unity插件安装失败问题

16 Jun 2018

前言

本文记录了mac上解决Rider加载、编译.Net项目失败的问题, 以及Rider的Unity插件安装失败,导致Rider中无法正确加载Unity solution,无代码提示问题。

总结

出现的问题及原因
  • 1). 提示MSBuild无法正确加载 Console Application
...

阅读全文 ...


聊聊unity序列化

14 Mar 2018

前言

序列化/反序列化是unity工作的核心,本文聊聊unity在什么情况下会进行序列化/反序列化操作。 ...

阅读全文 ...


【OpenGL Programming On macOS using glfw 】1: 使用Xcode, glfw, glew开发OpenGL 4.x

08 Feb 2017

前言

  1. install Xquatz
  2. install glew
cd build
cmake ./cmake
make -j4
make install
  1. install glfw
md build && cd build
cmake ..
make 
make install
  1. create command line cpp project in Xcode
...

阅读全文 ...


使用git在两台机器间同步代码

06 Feb 2017

前言

本文记录了如何使用git来在两台机器间同步代码,一台机器是linux,另一台是windows。

需求描述

有一份代码放在linux机器A上,我需要在另一台机器B上查看并编辑它,为了方便两台机器之间相互同步修改后的代码,git相比于scp等手动操作的好处: 1. 自动检查到修改的文件,不要自己去找改了那些文件 2. 附带版本管理功能 3. 便于扩展:有了第三台或更多机器的话,自己clone一份即可

步骤

1. 在存放原始代码的机器上,比如A,假设代码目录为:/codes/project,

cd /codes/project

# 创建git代码仓库
git init
git add .
git commit -m "create project"

# 切换到project父目录,创建一个project-bare目录
cd ..
mkdir project-bare

# 从原始代码仓库创建bare仓库,作为“中央”仓库,其他机器(包括本机的原始仓库)往这里push,从这里pull
git clone --bare ../project ./project-bare.git

# 回到project仓库目录
cd ../project

# 把project-bare添加为remote,
git remote add origin ../project-bare.git
git branch --set-upstream-to=origin/master master

2. 在其它机器上,比如B:

假设通过ssh来连接机器A
git clone ssh://<username>@<ip>:<port>:/codes/project-bare/project-bare.git ./project
...

阅读全文 ...


【C++ STL应用与实现】6: 如何使用std::list

31 Jan 2017

本系列文章的目录在这里:目录. 通过目录里可以对STL总体有个大概了解 #前言 list是stl对链表数据结构的一种支持,其通常被实现为双向链表。本文介绍了list的基本用法以及在使用list时需要注意的一些问题。

list 是什么

list是一个class template,要用它需包含#include <list>

基本用法示例

下面的代码改编自《The C++ Standard Library》第二版
// 定义两个int list
list<int> list1, list2;

// 插入元素
for (int i=0; i<6; ++i) {
    list1.push_back(i);
    list2.push_front(i);
}

printList(list1, "after push, list1: ");             
printList(list2, "after push, list2: ");            


// 把list1全部移到list2中,位置是list2中第一个等于3的元素之前
list2.splice(find(begin(list2), end(list2), 3), list1);
printList(list1, "list1, after splice: ");                        // empty
printList(list2, "list2, after splice: ");   

// 把list2的第一个元素移到其末尾
list2.splice(end(list2), list2, begin(list2));
printList(list2, "list2, move begin to end: ");   

// list的成员函数sort
list2.sort();
list1 = list2;
list2.unique();     // 去掉重复

printList(list1, "list1, after assign: ");             
printList(list2, "list2, after sort & unique: ");            

list1.merge(list2);  // 合并两个链表
printList(list1, "list1, after merge: ");
printList(list2, "list2, after merge: ");

auto printList = [](const list<int> &l, const string &info="") {
    p(info);
    for (auto &i : l) {
        p(i); p(" ");
    }
    cr;
};
...

阅读全文 ...