cmake:cmake-commands(7) — CMake 3.15.7 Documentation
目录结构
文件:
Hello.h
#ifndef CMAKER_LEARNING_HELLO_H
#define CMAKER_LEARNING_HELLO_H
class Hello{
public:
void print();
};
#endif //CMAKER_LEARNING_HELLO_H
Hello.cpp
#include <iostream>
#include "static/Hello.h"
using namespace std;
void Hello::print() {
cout << "hello Static Library!" << endl;
}
main.cpp
#include "static/Hello.h"
int main(int argc, char *argv[]) {
Hello hi;
hi.print();
return 0;
}
CMakeLists.txt
cmake_minimum_required(VERSION 3.5)
project(hello_library)
# create a library
add_library(hello_library STATIC src/Hello.cpp)
# generate the static library from the library sources
target_include_directories(
hello_library
PUBLIC
${PROJECT_SOURCE_DIR}/include
)
# create an executable
add_executable(
hello_binary
src/main.cpp
)
# link hello_library target with the hello_binary target
target_link_libraries(hello_binary
PRIVATE
hello_library
)
运行:
cd build
cmake ..
make
./hello_binary