MacOS登入Ubuntu虚拟环境

环境: MacOS,  Ubuntu, Clion

在做C语言开发的时候经常要涉及Linux中的库,因此在MacOS上用VirtualBox安装Ubuntu环境,通过terminal直接登入上去。但有时要用Ubuntu上的Clion,所以安装XQuartz这个支持图形界面的登入工具。使用登入如下:

ssh -Y jerry@192.168.56.101

(注:-Y 代表启用信任的X11 forwarding)

Clion编译带glibc库的C语言

环境: MacOS 10.11.6,  Clion 2019

由于C语言自带的ANSI lib内容库不太丰富,所以直接使用linux自带的glibc库。主程序直接引用 glibc头文件

#include <glib.h>

CMakeLists.txt如下:

cmake_minimum_required(VERSION 3.14)
project(untitled C)

set(CMAKE_C_STANDARD 99)

add_executable(untitled main.c)


find_package(PkgConfig)
pkg_check_modules(GLIB2 REQUIRED glib-2.0)
target_include_directories(untitled PUBLIC ${GLIB2_INCLUDE_DIRS})
target_link_libraries(untitled ${GLIB2_LIBRARIES})

但编译是老是发现无法找到libintl库,最后发现home-brew没有link到gettext,执行如下: brew link –force gettext 即可

好系统的特点

最近在想一个问题,一个系统在达到什么标准才可称得上是优秀的系统。对我个人而言,需要达到三个指标:

  1. 简单性:一个系统本身设计上就应该简洁,没有冗余的功能,容易升级和维护。
  2. 可用性:可用性是互联网产品必备特点,随时保持产品功能线上可用,不至于宕机造成大量用户流失。
  3. 自动化:系统的运维自动化,不该人力介入。在一般的错误情况能自动修复。因此对系统的监控在开发阶段提前设计

多语言编程

编程语言的百花齐放,造成在个个场景上有专门适合的语言。因此在单个系统运用多种编程语言来实现也慢慢进入程序员的思维方式。像交互,业务逻辑和数据方面都有相应的语言,这样就出现多语言编程方式。然而多种语言如何实现交互,是通过服务接口还是语言内置的调用其它语言的方式? 发挥语言在特定场景效果以及组合多语言的能力。