2012-04-10 63 views
1

我的項目的結構如下:CMake和編碼風格爲常見的配置代碼

/myproject 
    CMakeLists.txt (containing "add_subdirectory" and "include_directories" ..) 
    /src 
    /lib1 
     CMakeLists.txt (containing "add_library(lib1 ..)") 
     .. 
    /lib2 
     idem as lib1 .. 
    /mains 
    /common 
     =>config.cpp<= 
     =>gui.cpp<= 
    /main1 
     CMakeLists.txt 
     main1.cpp 
    /main2 
     CMakeLists.txt 
     main2.cpp 
    /data 
    /images_and_different_stuff 
    /conf 
    params.cfg 
    /bin 
    (output executables) 
    /release 
    (cmake build_files) 

我的問題是關於配置類我放在/common的鏈接。這些類讀取CLI或配置文件params.cfg並初始化main1.cpp和main2.cpp和main3.cpp中存在的主幹對象...(所有exes都有一個配置文件) 現在我已經在我的/main1's CMakeLists.txt中了: set(main1_source main1.cpp ../common/config.cpp ..)。所以通用代碼是爲每個exe重新編譯的。做這個的最好方式是什麼 ?從常用文件中創建一個靜態庫?

+0

我會做一個靜態庫,由兩個應用程序鏈接,但如果你將發佈應用程序,並使它們可安裝,那麼也許它會更好地使公共庫動態? – 2012-04-10 12:55:09

回答

0

這樣做的最佳方法是什麼?從常用文件中創建一個靜態庫?

沒錯。或者如果你想減少你的總安裝大小,可以使用共享庫。