linux C 應用程式打包發布

2022-08-24 06:39:12 字數 1197 閱讀 4228

linuxc++動態庫打包應用程式打包動態庫搜尋路徑

linux環境下打包c++應用程式,包括其依賴的動態庫,以便解決程式發布後程式執行動態庫缺失問題

動態庫編譯時新增-fpic編譯選項(一般動態庫都會有此選項,自己寫的庫記得新增)

-fpic: 生成與位置無關**

編譯自己的應用程式,得到test

打包動態庫:使用pack_lib.sh指令碼將test依賴的動態庫至某資料夾(如可在發布的程式根目錄下新建lib資料夾,如下所示)

.

bin/test

lib/

#! /bin/sh

# pack_lib.sh

deplist=$( ldd $1 | awk '}' )

cp -l -n $deplist $2

​ 使用方式:

sudo chmod a+x pack_lib.sh # 增加執行許可權

./pack_lib.sh test ./lib/ # 第乙個引數: 應用程式 第二個引數: lib/路徑

4.建立發布後應用程式執行指令碼:作用是將工程目錄下的lib/路徑新增到動態庫搜尋路徑中。當程式發布後,應當通過該指令碼啟動應用程式。

#! /bin/bash

shell_folder=$(cd "$(dirname "$0")";pwd)

export ld_library_path=$:$/lib

$/test "$@"

使用方式:

# 如果test需要新增引數 如下

執行時動態庫的搜尋路徑的先後順序:

1.編譯目標**時指定的動態庫搜尋路徑;

2.環境變數ld_library_path指定的動態庫搜尋路徑;

3.配置檔案/etc/ld.so.conf中指定的動態庫搜尋路徑;

4.預設的動態庫搜尋路徑/lib和/usr/lib;

QT 打包發布應用程式

目錄 一 用windepolyqt.exe發布exe應用程式 二 打包成單檔案exe 三 打包安裝程式 已剪輯自 qt creator release 的.exe 應用程式的執行需要依賴一些動態鏈結庫,如果在一台沒有安裝 qt的計算機上執行就需要打包動態庫拷貝過去才能執行。qt自帶有 windepl...

MFC應用程式打包發布教程

mfc應用程式打包發布 1.在同乙個解決方案下,新建乙個setup工程,工程名為vpsetup 2.右擊vpsetup工程 view 檔案系統 如下圖所示選擇專案輸出,選擇videoplayer工程作為作為主輸出 3.它會自動檢測工程中呼叫的鏈結庫,安裝完成後會自動釋放到指定資料夾下。如果缺少部分鏈...

Linux打包發布qt應用程式

四.編寫執行指令碼 qt應用程式在windows下打包相對比較簡單 linux下使用qt進行開發的程式,如果想要在其他搭載linux系統的主機上執行則需要將要發布的qt程式依賴的一些動態鏈結庫一起打包,主要方法 linux系統下可以手寫乙個指令碼檔案,充分利用ldd命令進行打包。作業系統環境 ubu...