我正在编写一个用于构建库的makefile,这是它的一个摘录,与我提出的问题相关:
//....Container:
render() {
if (this.state.navigateEmployers) {
return <Redirect to="/employers" />
} else if (this.state.navigateAuth) {
return <Redirect to="/auth/login" />
}
return (
<Fragment>
<Header/>
<div className="employers-logout col-lg-9 mx-auto d-flex flex-column justify-content-center text-center align-items-center">
<div className="employers-logout-text">
<h1>You succeessfully logouted!</h1>
<p>You will be redirected to the main page shortly</p>
</div>
<div className="employers-logout-buttons d-flex row align-items-center align-middle justify-content-between">
<p>Manual redirection</p>
<button className="btn btn-success mr-2" onClick={this.handleClick}>Go now</button>
</div>
</div>
<Footer/>
</Fragment>
)
}
}
export default LogoutPage;
这有一个问题,如果我有一个悬空的头文件,悬空我的意思是它没有包含在任何.cpp文件中,makefile不会将其视为编译。
我该怎么办?要手动列出它们并将它们添加为SRCS = $(wildcard *.cpp)
OBJS = $(SRCS:.cpp=.o)
OUT = my_library #there is a .cpp file called my_library
$(OUT): $(OBJS)
ar rvs $(OUT).a $(OUT).o
$(OBJS): $(SRCS)
$(CC) $(SCRS) $(FLAGS) -c $< -o $@
的依赖关系和目标?我不认为这是我必须遵循的方式。
答案 0 :(得分:2)
头文件只是定义源文件中的内容,或者在使用时生成代码。对于库文件,它们生成的代码将在调用代码中生成,而不是库代码,因此在编译库时不需要生成任何内容。