原创 實際代碼中動態鏈接庫的位置問題

我有個問題哈: zlog, avro,pcap這些庫,一般我們用的時候是把/usr/local/下邊 所有相關內容全部複製到 我們程序目錄lib/下,然後gcc 時加上 -Wl,rpath= -L 這些? 那這樣不是比

原创 gcc -wl,-rpath=參數

使用GCC編譯動態鏈接庫的項目時,在其他目錄下執行很可以出現找不到動態鏈接庫的問題。 這種情況多發生在動態鏈接庫是自己開發的情況下,原因就是程序運行時找不到去何處加載動態鏈接庫。 可能會說在編譯時指定了鏈接的目錄啊? 編譯時指定的

原创 預處理,編譯,彙編,鏈接

一個現代編譯器的主要工作流程如下: 源代碼(sourcecode)→預處理器(preprocessor)→編譯器(compiler)→彙編器(assembler)→目標代碼(objectcode)→連接器(Linker)→可執行程

原创 make: *** No rule to make target 'test1.o', needed by 'test2'. Stop。

make的時候出現以下錯誤:make: *** No rule to make target ‘test1.o’, needed by ‘test2’. Stop。 解決辦法:最常見的可能是沒有正確書寫test1.o對應的源文件的

原创 connect錯誤:no route to host

linux下,socket , 用vmware裝了兩個虛擬機,分別運行客戶端和服務器端。客戶端連接的時候報錯:connect error:no route to host。 但是在同一虛擬機下運行正常。 我檢查了socket返回值

原创 虛擬機的安裝與克隆

虛擬機的安裝與使用 Linux操作系統的安裝與使用 centos 7的安裝與配置 虛擬機的克隆‘ 徹底刪除虛擬機 下載安裝 vmware虛擬機: 下載 vmware workstation pro 15 ,下載windo

原创 socket編程中write、read和send、recv

write()與read()函數 send()與recv()函數 一旦,我們建立好了tcp連接之後,我們就可以把得到的fd當作文件描述符來使用。 1.write()函數 include <unistd.h> ssize_t

原创 linux多線程理解,附小例子

今天寫了4部分內容: 在線程和進程的基礎上,理解多線程是幹什麼的 相關函數 一個包含了2個線程的小例子 經常遇到的一個錯誤 一、首先,先來說幾點關於線程、進程、多線程的理解: 一個cpu有多個核,通常情況下一個核心對應一個線程

原创 網卡的混雜模式介紹

什麼是混雜模式 網卡都有哪些工作模式 如何設置或取消網卡的混雜模式 通常在需要用到抓包工具,例如sniffer時,需要把網卡置於混雜模式。 一 混雜模式基本概念 一般情況下,網卡往往只會接收目的地址是它的數據包而不會接收目的

原创 avro庫 [數據序列化系統] c語言版本的下載安裝

下載avro庫c語言版本: 瀏覽器下載地址再上傳至虛擬機:https://mirror.bit.edu.cn/apache/avro/avro-1.9.2/ 或者linux上直接下載:wget https://mirror.bi

原创 fwrite ,fprintf的作用與區別

1.概念和作用 fwrite是C語言函數,指向文件寫入一個數據塊,通常是數組或結構體。 fprintf是C/C++中的一個格式化寫-庫函數,其作用是格式輸出到一個流/文件中. 2.用法 fwrite 函數 示例一: /* fw

原创 epoll函數及用法

epoll介紹 相關函數 相關結構體 例子 一、epoll Epoll 是一種高效的管理socket的模型,相對於select和poll來說具有更高的效率和易用性。傳統的select以及poll的效率會因爲 socket數量

原创 zlog模塊化

大型項目中zlog的模塊化: 下載zlog庫並安裝,將生成的/usr/local/lib和/usr/local/include 兩個目錄複製到自己程序目錄下, Makefile: gcc -Wl,rpath=./lib

原创 一個較全的Makefile例子

CC = gcc CFLAGS = -std=gnu99 -ggdb -D_BSD_SOURCE CFLAGS += -Wl,-rpath=./lib -L./lib #動態庫鏈接路徑 LIBS = zlog pthrea

原创 libpcap網絡數據包捕獲函數庫 的介紹與安裝

libpcap簡介 下載編譯安裝 實例 一 Libpcap簡介 Libpcap是Packet Capture Libray的英文縮寫,即網絡數據包捕獲函數庫。該庫提供的C函數接口用於捕捉經過指定網絡接口的數據包,該接口應該是