目錄環境
背景方式一:源**
方式二:庫
ubuntu18
cmake version 3.17.3
把工具類放到單獨的資料夾下,以便結構清晰。
比如現在有乙個utils的資料夾,下面放自己編寫好的工具類。
目錄結果如下:
cmakelists.txt**
cmake_minimum_required(version 3.10)
project(ylk_demo)
#需要把用到的**都新增進來
add_executable(main main.c utils/dateutils.c)
main.c**:使用了dateutils.c中的shownow()方法顯示當前時間
#include "utils/dateutils.h"
int main()
dateutils.h**
#ifndef demo_dateutils_h
#define demo_dateutils_h
//顯示當前時間
上面通過 add_executable(main main.c utils/dateutils.c) 的方式 使用類,適用方直接感知到了具體的檔名,耦合度高,而且檔案多了也不方便。
下面通過使用共享庫的方式解決這個耦合問題。
複製demo3到demo4資料夾。目錄結構和c的**都不用變,修改配置檔案。
1、在utils下新建cmakelists.txt
add_library:表示新增庫、dateutils是庫的名字。cmake在生成的時候會根據命名規範生成 libdateutils.a或libdateutils.so
static: 表示生成靜態庫,所以這裡最終的名字是 libdateutils.a
add_library(dateutil static dateutils.c dateutils.h)
2、修改根目錄下的cmakelists.txt
cmake_minimum_required(version 3.10)
project(ylk_demo)
add_executable(main main.c)
#下面的是新加的
#表示main使用到了 dateutil這個庫
target_link_libraries(main dateutil)
#把utils新增到工程源**中
3、執行檢視結果
這樣子我們就通過庫的名字,把上面說的耦合給解耦了。
又驗證了計算機界有個名言:計算機界任何問題都可以通過加乙個中間層來解決
python建立子目錄並在子目錄下建立檔案
import os 首先判斷當前工作目錄下是否存在目錄machine learning ifnot os.path.isdir machine learning 不存在的話就建立子目錄machine learning 因為父目錄存在,所有這裡用mkdir也可以 os.makedirs machine...
iview admin nginx 部署子目錄
1 修改專案下的 vue.config.js 部署環境改為子目錄的名稱 2 nginx配置 這裡使用alias 不能用root server 3 alias和root的區別 實際util.js 檔案是在dist js 目錄下,這樣會訪問不到資源 4 前後端分離,正式環境nginx配置 設定正式環境下...
合併子目錄 hash
題目2 合併子目錄 時間限制 10000ms 單點時限 1000ms 記憶體限制 256mb 小hi的電腦的檔案系統中一共有n個檔案,例如 hihocoder offer22 solutions p1 hihocoder challenge30 p1 test game moba dota2 uni...