1、需要安裝python的依賴包
這里我安裝了多次,這個坑最耽誤時間。
第一步:一開始是本地安裝,下載https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh。make install 到指定的文件進行安裝。
第二步:以為這只是python開發需要的環境,所以又安裝了python3.8-dev。
使用CMakeLists.txt,引用include文件路徑,項目工程中引用頭文件Python.h 時總是報錯,然后網絡上一頓沖浪,還是沒解決問題。
自己推測應該是版本重復,推測是對的,然后嘗試刪除/usr/include/python3.8 目錄,然而還是不行。
自己把第一步安裝的文件中include文件目錄,全部cp到項目中,竟然還是不行,這是我比較納悶的和崩潰的,最后查找原因竟然是cp過來的文件夾python3.8名稱和/usr/include目錄下的文件同名 (使用 locate python.h 確認),其實是我把項目中cp過來的python3.8文件改了一個名稱,然后就可以編譯了才確認的。
2、依賴的文件
需要添加 -lpython3.8 而不是-lpython ,這里要指定版本號,也是依賴文件名要寫對。
3、要調用的python腳本要和可執行文件放在同一目錄 而不是項目文件 (我編譯的文件都是放到build文件夾下)
4、附上CMakeLists.txt
cmake_minimum_required(VERSION 3.0)
project(cpp_python_exe)
set(CMAKE_CXX_STANDARD 11)
set(INCLUDE_DIR ${CMAKE_SOURCE_DIR}/include/python_include)
include_directories(${INCLUDE_DIR})
link_directories(${CMAKE_SOURCE_DIR}/lib)
add_executable(cpp_python_exe ../main.cpp)
target_link_libraries(cpp_python_exe -lpython3.8)