在linux中使用openssl庫的乙個小坑

2021-10-08 16:41:36 字數 704 閱讀 8203

最近在開發中需要使用openssl的庫,windows平台下很快就一切正常了。移植到linux下,因為**有一堆其他相容問題,所以還沒發現什麼。直到別的問題都解決完了,發現居然出現以下編譯錯誤:

inc/openssl/rand.h:67:21: fatal error: windows.h: no such file or directory

為什麼會在linux下引用windows.h,讀了rand.h發現是定義了openssl_sys_windows

然後再向前搜,發現定義openssl_sys_windows是因為在e_os2.h裡發現定義了

openssl_sys_win32   openssl_sys_winnt   openssl_sys_wince三個巨集之一;

再向前發現是定義了openssl_sysname_win32。

最後定位到opensslconf.h第5行

#ifndef openssl_sysname_win32

# define openssl_sysname_win32

#endif

居然是無條件定義了windows的巨集。也是無語了

再看看opensslconf.h開頭的注釋

/* opensslconf.h */

/* warning: generated automatically from opensslconf.h.in by configure. */

在Linux中使用執行緒

我並不假定你會使用linux的執行緒,所以在這裡就簡單的介紹一下。如果你之前有過多執行緒方面的程式設計經驗,完全可以忽略本文的內容,因為它非常的初級。首先說明一下,在linux編寫多執行緒程式需要包含標頭檔案pthread.h。也就是說你在任何採用多執行緒設計的程式中都會看到類似這樣的 1 incl...

在linux中使用getch 函式

由於在linux中沒有conio.h檔案,所以不能直接用getch 函式,下面介紹如何在linux中使用getch 函式 在linux中並沒有 conio.h 這個檔案,要實現類似 getch getche 等函式的功能,可以使用 curses庫。include 使用 curses 之前要先進行初始...

在Linux中使用nmap命令

一般在本機上檢視埠時,最好使用netstat,因為它安全又可靠,如果找不到埠,或不知道埠的作用是什麼,尤其在 etc services中沒有提到的埠對應的服務,就可以使用nmap命令.這個命令是系統管理員用來管理系統安全性的工具,可以通過它了解我們主機埠到底有什麼作用.語法 nmap 掃瞄型別 掃瞄...