一、新建一个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”运行程序,若出现下图,则表示成功。