【发布时间】:2021-04-14 10:52:38
【问题描述】:
我有一个问题:
我正在创建一个这样的库:
myLibrary.h
class MyLibrary{
public:
MyLibrary(int);
private:
int myInt;
}
myLibrary.cpp
#include "myLibrary.h"
MyLibrary::MyLibrary(int i){
this->myInt = i;
}
main.cpp
#include "myLibrary.h"
int main(){
MyLibrary library(10);
}
如果我现在像这样执行我的 Makefile:
all:
g++ -o library.o -c myLibrary.cpp
g++ -o main.o -c main.cpp
g++ -o main.out main.o library.o
一切正常,但是我如何做到这一点,当我将这个库提供给其他人以在他的代码中使用它时,他只需输入他的程序 #include "myLibrary.h" 就可以了。所以我不想让他在他的makefile中为我的库中的每个c++文件键入所有g++调用,有没有办法将makefile包含到其他makefile中?
我知道这听起来可能是个愚蠢的问题,但如果你能帮助我,那将是非常温和的。
【问题讨论】:
-
在某种程度上你创建了一个合法的静态库
library.o。你可以把它连同它的头文件一起提供给任何人,他们可以链接到它(他们仍然需要知道如何链接)。他们的makefile然后至少不再需要这行g++ -o library.o -c myLibrary.cpp因为你已经编译了它。 -
@bloody 我刚刚发现你在这里评论“感动”。我接受它,实际上已将其纳入我的答案。你同意吗?
-
@Yunnosch 当然,没问题,我也在你的帖子下解释了自己。感谢您的信息:)