原创 使用muduo編譯鏈接錯誤 undefined reference to `muduo::ThreadPool::run(boost::function&&)'

用nm查看引用的libmuduo_base.a裏面,發現確實沒有這個函數,連ThreadPool類都沒有編譯進來。不過在libmuduo_base_cpp11.a裏面,nm查看是有這個ThreadPool的。將Makefile的鏈接庫改爲

原创 Ubuntu下安裝最新版本的CMake

Ubuntu自帶的apt-get install方式安裝的CMake版本有點老。項目中需要最新版本的CMake 2.8.9, 這個版本還是採用CPack打包的,爲了體驗一把CPack的發佈的便利性,就試用一下。 首先卸載已經安裝的舊版的C

原创 Linux交叉編譯rtl8192se驅動的Makefile

KDIR := /home/wangxijue/Downloads/linux-3.0.1/ obj-m += rtl8192se.o rtl819

原创 RocksDB寫入數據過程DBImpl::Write()源代碼分析

Status DBImpl::Write(const WriteOptions& write_options, WriteBatch* my_batch) { if (my_batch == nullptr) { return

原创 使用muduo編譯鏈接錯誤 undefined reference to `muduo::ThreadPool::run(boost::function<void ()()>&&)'

用nm查看引用的libmuduo_base.a裏面,發現確實沒有這個函數,連ThreadPool類都沒有編譯進來。不過在libmuduo_base_cpp11.a裏面,nm查看是有這個ThreadPool的。將Makefile的鏈接庫改爲

原创 GCC 4.8編譯程序拋出Error: no such instruction: `某某彙編指令`

用gcc 4.8編譯RocksDB時,拋出如下錯誤,如圖: 查了許久,不得正確的解決辦法。最終,在Intel的網頁上看到“Write Your First Program with Haswell New Instructions”看

原创 編譯GCC-4.8出現的錯誤 —— Linux gnu/stubs-32.h: No such file or directory

在64位CentOS上編譯GCC-4.8時,出現了GCC: Linux gnu/stubs-32.h: No such file or directory的錯誤。 查資料得知,這是缺少32位的嵌入式C庫。在嵌入式開發環境配置時,也常遇到

原创 /etc/profile與/etc/bashrc、交互式與非交互式、login與non-login shell的區別

線上的memcached又掛了,仍然沒有得到core文件。排查原因,同事發現啓動memcached的腳本存在可疑問題。 問題一:沒有設置memcached工作目錄,有可能core dump時沒有工作目錄寫權限 這些腳本由crontab啓動

原创 C++虛析構函數

通常,一個實現了析構函數的類型同時也需要實現拷貝構造函數與拷貝複製函數。 作爲一個經驗法則,如果你有一個帶有虛函數功能的類,則它需要一個虛析構函數,原因如下:   1. 如果一個類有虛函數功能,它經常作爲一個基類使用。 2.如果它是一個基

原创 Difference between maven scope compile and provided for JAR packaging

compile This is the default scope, used if none is specified. Compile dependencies are available in all classpaths o

原创 pthread_cond_wait/pthread_cond_timedwait使用注意

今天在閱讀Linux Device Drivers時,讀到了如下一段話: Another thing to remember with sleeping is that, when you wake up, you never kn

原创 使用pthread_cond_timedwait()超時時間設置問題

最近在使用pthread_cond_timedwait的時候,發現當超時時間設置成1秒以下的值時,返回結果提示函數參數設置錯誤。首先來看一下pthread_cond_timedwait的原型: #include <pthread.h> i

原创 C++11 牛逼新特性——Alias declaration template

C++11的一個牛逼特性,記住備忘: template<typename T> struct A {}; template<typename T> using APtr = boost::shared_ptr<A<T>>; // <-

原创 Ubuntu雙顯示器分辨率問題

1) $xrandr 得到顯示器名稱,我的爲 VGA1,筆記本爲LVDS1,大家以此類推,不一定都一樣 2) $sudo xrandr --newmode "1440x900_60.00"  106.50  1440 1528 1672

原创 Linux配置無線網卡

#啓用無線網卡的網絡,必須先用ifconfig命令打開wlan,否則接下來的iwconfig操作會出現“SET failed on device wlan0 ; Operation not permitted.”的錯誤。 ifconfig