so共享庫編寫
建立乙個名為 mysharedlib 的共享庫
cmakelists.txt
cmake_minimum_required(version 3.10)
project(mysharedlib)
set(cmake_cxx_standard 11)
add_library(mysharedlib shared library.cpp library.h)
library.h
#ifndef mysharedlib_library_h
#define mysharedlib_library_h
// 列印 hello world!
void
hello()
;// 使用可變模版引數求和
template
<
typename t>
t sum
(t t)
template
<
typename t,
typename..
.types>
t sum
(t first, types .
.. rest)
#endif
library.cpp
#include
#include
"library.h"
void
hello()
so 共享庫的使用(被可執行專案呼叫)
建立乙個名為 testsharedlib 的可執行專案
cmakelists.txt
cmake_minimum_required(version 3.10)
project(testsharedlib)
# c++11 編譯
set(cmake_cxx_standard 11)
# 標頭檔案路徑
set(inc_dir /home/xx/code/clion/mysharedlib)
# 庫檔案路徑
set(lib_dir /home/xx/code/clion/mysharedlib/cmake-build-debug)
include_directories($)
link_directories($)
link_libraries(mysharedlib)
add_executable(testsharedlib main.cpp)
# 鏈結 mysharedlib 庫
target_link_libraries(testsharedlib mysharedlib)
main.cpp
#include
#include
"library.h"
using std::cout;
using std::endl;
intmain()
執行結果
hello, world!
1 + 2 = 3
1 + 2 + 3 = 6
python通過共享庫呼叫C函式
例項演示 c語言寫乙個函式,名為pycall.c include include intfoo int a,int b 使用gcc編譯成共享庫。gcc是c語言的編譯工具,可以編譯c和c g 只能比編譯c gcc o libpycall.so shared fpic pycall.c fpic 作用於...
除錯Python呼叫的C 共享庫
前言 在開發過程中我們有時需要根據不同的語言來開發不同的模組,例如tensorflow就是提供python的介面,同時在底層呼叫了c 的函式。我最近在工作中也遇上了同樣的問題,需要python來呼叫c 的.so庫,在網上找了一圈,沒有很符合我需求的結果,在此記錄下我花了一天時間搞的結果。測試環境 u...
QT學習》QT生成與呼叫共享庫
1.建立c 庫 1.1點選new project 1.2選擇庫模板 選擇 library 中的 c 庫 再點選 choose 1.3選擇共享庫 給共享庫取個名稱,並指定生成檔案存放路徑。再點選 下一步 1.4選擇編譯器 再點選 下一步 1.5選擇所需要的模組 預設選擇qtcore qtcore 模組...