1. 程式人生 > >CMakeLists.txt編寫

CMakeLists.txt編寫

一、新建一個src資料夾,裡面放入hello.c,hello.h,,main.c,CMakeLists.txt這四個檔案,這四個資料夾裡面的內容分別如下:

1.hello.c

#include "hello.h"

void hello_func(void) {
	printf("Hello World!\n");

	return;
}

2.hello.h

#ifndef HELLO_H_
#define HELLO_H_ (1)

#include <stdio.h>

void hello_func(void);

#endif

3.main.c

#include "hello.h"

int main(void) {

  hello_func();

  return 0;
}

4.CMakeLists.txt

cmake_minimum_required(VERSION 2.8.4)

project(hellolib)

set(LIBHELLO_SRC 
		hello.c

)
add_library(hello_dynamic SHARED ${LIBHELLO_SRC})
add_library(hello_static STATIC ${LIBHELLO_SRC})


set_target_properties(hello_dynamic PROPERTIES OUTPUT_NAME "hello")
set_target_properties(hello_dynamic PROPERTIES VERSION 1.2 SOVERSION 1)

set_target_properties(hello_static PROPERTIES OUTPUT_NAME "AIECG")

set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib)

install(TARGETS hello_dynamic
        LIBRARY DESTINATION lib
        ARCHIVE DESTINATION lib)
        
install(FILES hello.h DESTINATION include/hello)




# app entry

add_executable(AIECG 

			main.c
)
set_target_properties(AIECG PROPERTIES
                      OUTPUT_NAME "AIECG"
)

二、開啟CMake,載入src資料夾路徑C:/CppWorkspace/opencv_work/SVN/2/src,在src同級目錄下新建一個bin資料夾,載入bin資料夾路徑C:/CppWorkspace/opencv_work/SVN/2/bin,然後點選“Configure”,再點選“Generate”,直到沒有出現任何錯誤。


三、此時你開啟bin資料夾,會發現多了許多檔案,然後我們雙擊開啟hellolib.sln。


四、開啟工程檔案後,我們右擊“AIECG”,選擇“設為啟動專案”,選擇“Release”,然後再“生成解決方案”。


五、此時會出現一個錯誤


解決方案:右擊“AIECG”工程,選擇“屬性”->“連結器”->“輸入”->“附加依賴項”,在“附加依賴項”裡面新增“C:\CppWorkspace\opencv_work\bin\lib\Release\AIECG.lib”,然後再次“生成解決方案”。

此時,你會發現已經沒有錯誤了,然後按“Ctrl+F5”執行程式,若出現下圖,則表示成功。