最近使用cmake編譯專案,其中需要使用第三方庫,但是每次在不同電腦上編譯時需要手動編譯第三方庫十分麻煩,因此,我寫了乙個shell腳步來編譯第三方庫,同時希望在cmake編譯時自動呼叫這個腳步編譯第三方庫。有了思路,就需要看cmake如何呼叫shell命令了。
cmake可以通過execute_process呼叫shell命令,其使用如下:
execute_process(command
[args1...]]
[command [args2...]
[...]]
[working_directory ]
[timeout ]
[result_variable ]
[output_variable ]
[error_variable ]
[input_file ]
[output_file ]
[error_file ]
[output_quiet]
[error_quiet]
[output_strip_trailing_whitespace]
[error_strip_trailing_whitespace])
按照上述格式,我寫的測試cmakelists.txt如下:
cmake_minimum_required
(version
3.7)
message
("test cmake call shell command")
execute_process
(command echo "hello")
經測試可正常執行,腳步的呼叫則與shell命令的呼叫類似,**示例。
[1]
cmake呼叫shell的筆記
想用cmake呼叫shell引入一些環境變數,或者編譯鏈。查到了幾種方法 但是無論如何,都在child process裡面執行shell,no intermediate shell is used,沒辦法放棄了。除非把所有shell用cmake寫一遍,但是一旦shell更新,cmake也要更新,這就...
shell腳步攻略 1
echo命令 雙引號中不能放入shell中起作用的字元,如 用來執行歷史命令中的某一條,如 30 表示執行第三十條命令 例子詳解 echo hello world echo e 1 t2 t3 echo path 單引號,裡面的字元字面輸出,不會進行變數替換 檢視某個程序的環境變數 cat proc...
shell腳步部署 zabbix服務
bin bash echo 關閉防火牆,selinux systemctl stop firewalld setenforce 0 dev null echo 同步系統時間 ntpdate pool.ntp.org echo 寫入阿里yum源 安裝mysql,zabbix echo 正在安裝mysq...