程式帶main()函式的可以編譯成可執行程式,那其他的程式就可以定義成庫了。我目前理解層面的庫分為兩種,一種是靜態庫以.a作為字尾,一種是共享庫以.so字尾。區別在於,編譯的時候靜態庫存在多份,共享庫只存在乙份。
#include
"libhelloworld.h"
using
namespace std;
intmain
(int argc,
char
** ar**)
#include
"libhelloworld.h"
#include
using
namespace std;
intprintf()
#ifndef lib_helloworld
#define lib_helloworld
intprintf()
;#endif
#宣告要求的cmake最低版本
cmake_minimum_required
(version 2.8
)#宣告乙個cmake工程
project
(helloworld)
#新增乙個可執行程式
#語法:add_executable(程式名 源**檔案)
add_executable
(helloworld helloslam.cpp)
#建立庫格式,helloworld_share是庫檔案的名字
#shared引數表示建立的是共享庫,靜態庫則不用加中間引數
#libhelloworld.cpp是原始檔的名字
add_library
(helloworld_share shared libhelloworld.cpp)
#給可執行檔案鏈結庫
target_link_libraries
(helloworld helloworld_share)
cd build
cmake ..
make
./helloworld
this is a lib
Linux下執行可執行檔案
我們通常會為計算機配置環境變數 path,echo path 檢視當前的環境變數包含的目錄。這些目錄下的可執行檔案就無需輸入完整路徑來執行,直接輸入命令就行,我們shell中常使用的一些linux命令,例如man,cat等的目錄都被包含在該path目錄中,所以直接在shell中輸入這些命令就可以。即...
嵌入式Linux驅動開發之helloword心得
自從選擇了物聯網這個專業,智慧型xx的字樣牽動著每乙個學習這個專業的孩子。大家興致勃勃的來到了學校,結果一切想象和自己的設想並不一樣。想象中的各種智慧型般夢幻的場景變成了真實的高數 電路 模電等等諸如此類!不知道這個世界什麼時候變得如此的浮躁,當大家的一段時間的努力看不到結果的時候就往往會不太感興趣...
Linux 最簡單的驅動程式hello world
最近開始學linux驅動,就從最簡單的開始練起,就從ldd 3裡的第乙個驅動程式hello world練起。the following code is a complete hello world module include include module license dual bsd gpl ...