原创 cmake的環境變量設置

開源代碼編譯一般都使用兩種, 一種是大部分通過autoconf的configure進行生成,這種可以通過configure --help瞭解可以通過配置哪些參數調整編譯的細節 另外一種是CMakeFile,而這種通過沒有configure。

原创 Tips:outlook(Exchange 模式) 無法存檔

Exchange賬戶啓用了緩存模式。在這個情況下,郵件的確是無法備份到本地的。因爲Outlook在存檔和導出的時候,是從本地緩存的數據文件(.ost)裏進行的。緩存模式下,如果這些郵件沒有被緩存到本地,的確是無法導出。我們可以暫時性的先將所

原创 linux-ubuntu grub設置默認的啓動內核

OS:ubuntu 18.04,當安裝或升級了內核後,啓動項會有多個選擇,默認是最新的安裝項,可能是最新的內核,但有時候一些設備可能無法識別,所以需要默認用回之前的內核版本,由此產生此需求。 1.修改GRUB_DEFAULT, 在/etc/

原创 ssh 客戶端連接提示Connection closed by foreign host

現在查看 1. 服務端是否已安裝ssh 2. 配置是否正常 3. 端口是否被佔用 4. 網上大多數都提到的密鑰文件讀取權限的問題,可以通過chmod修改文件讀取權限。 都是默認,而且已經開啓的情況下; 感覺最好的方法是先停掉服務端的sshd

原创 qnx編譯libevent-2.1.12

交叉編譯,因爲libevent基本使用C,沒有CXX, 故指定CC即可 但平臺的類型有區別,因爲目標是aarch64, 所以需要指定-Vgcc_ntoaarch64le,然後設置sdp的環境變量即可編譯了。 . qnx_sdp.sh./co

原创 cmake -DCMAKE_TOOLCHAIN_FILE

cmake交叉編譯時提示如下錯誤  cc: Can't specify -P, -C, -E, -c or -S with -o and have multiple files 主要是QNX需要指定-Wp,MD xxx;沒有-Wp會提示如上

原创 QNX的宏QNX_SOURCE

在qcc編譯中宏QNX_SOURCE的作用是會包括POSIX的頭文件,包括數據類型,宏聲明,庫函數等, 如果只加了-std=C++11,但沒有QNX_SOURCE就算是包含了頭文件#include <unistd.h>等,都是無法使用Lin

原创 c++ 模板 類型兼容int和string

在模板函數裏面,一個函數裏面你想一個T typ同時賦值多種類型時,編譯器肯定會提示無法轉換的問題,即使使用static_cast也只能同類型的進行轉換。 T typ; typ = 3; typ = "abc";   //這裏會提示問題err

原创 ubuntu 16.04 install openssl-1.1.1

$ wget https://www.openssl.org/source/openssl-1.1.1k.tar.gz $ tar -xzf openssl-1.1.1k.tar.gz$ cd openssl-1.1.1k$ ./confi

原创 gcc 10.2.0編譯glibc2.25出現錯誤

$ /usr/local/bin/gcc --versiongcc (GCC) 10.2.0Copyright (C) 2020 Free Software Foundation, Inc. $ /usr/bin/gcc --version

原创 使用gcc鏈接std的接口出錯

連接的時候提示,undefined reference to `std::__1::basic_string 或者undefined reference to `std::__cxx11::basic_string,總之就是std的一部分變

原创 ELFhash

4 bytes #define MOD 0x7fffffff int ELFhash(char*key) { unsigned long h=0; while(*key) { h = (h << 4) +

原创 RTIDDSMicro-sequence

假如要在系統內的交互一個二進制數據,忽略大小端;可以將數據定義如下sequence<octet, 255> payload通過from_array賦值,通過get_contiguous_buffer獲取buffer。目前已知存在如果二進制定

原创 模板函數指針

  比較討厭模板,所以都不希望整個類都感染,只讓部分函數有模板功能。 所以下面code是一個不需要將類聲明爲模板類,卻又可以保留模板函數爲成員變量的一個例子。   第17行聲明一個通用指針用於保存每個對象對應不同的函數指針,便於在線程中使用

原创 insmod提示invalid module format

insmod: error could not insert module test.ko: -1 Invalid module format 原因:驅動文件編譯的內核版本與當前運行系統的內核版本不一致導致。 1. 通過modinfo 查看