单上级调单下级
在main.c中调用下级hello.c中的函数
文件结构
文件源码
#include "hello.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int hello()
{
printf("hello world");
return 0;
}
#ifndef HELLO_H
#define HELLO_H
int hello();
#endif
#include "hello.h"
int main()
{
hello();
}
cmake_minimum_required (VERSION 3.10)
project(HELLO)
add_subdirectory(src bin)
add_executable(main main.c)
INCLUDE_DIRECTORIES(/home/uisrc/Desktop/cmake_test/src/)
LINK_DIRECTORIES(/home/uisrc/Desktop/cmake_test/build/bin/)
TARGET_LINK_LIBRARIES(main hello)
#第一个main是外部main.c编译后执行文件名字 调用下级的库hello
cmake_minimum_required (VERSION 3.10)
set(LIBHELLO_SRC hello.c)
add_library(hello SHARED ${LIBHELLO_SRC})
#生成共享库 hello
在build路径下
cmake ..
make
单上级调多下级
文件结构
文件源码
#include "hello.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int hello()
{
printf("hello world");
return 0;
}
#ifndef HELLO_H
#define HELLO_H
int hello();
#endif
#include "byb.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int byb()
{
printf("byb world\r\n");
return 0;
}
#ifndef BYB_H
#define BYB_H
int byb();
#endif
#include "hello.h"
#include "byb.h"
int main()
{
hello();
byb();
}
cmake_minimum_required (VERSION 3.10)
project(HELLO)
add_subdirectory(src bin)
add_subdirectory(src2 bin2)
add_executable(main main.c)
INCLUDE_DIRECTORIES(/home/uisrc/Desktop/cmake_test/src/)
INCLUDE_DIRECTORIES(/home/uisrc/Desktop/cmake_test/src2/)
LINK_DIRECTORIES(/home/uisrc/Desktop/cmake_test/build/bin/)
LINK_DIRECTORIES(/home/uisrc/Desktop/cmake_test/build/bin2/)
TARGET_LINK_LIBRARIES(main hello)
TARGET_LINK_LIBRARIES(main byb)
#第一个main是外部main.c编译后执行文件名字 调用下级的库hello
cmake_minimum_required (VERSION 3.10)
set(LIBHELLO_SRC hello.c)
add_library(hello SHARED ${LIBHELLO_SRC})
#生成共享库 hello
cmake_minimum_required (VERSION 3.10)
set(LIBHELLO_SRC byb.c)
add_library(byb SHARED ${LIBHELLO_SRC})
#生成共享库 byb
在build路径下
cmake ..
make