gpt4 book ai didi

c++ - g++,为分发创建静态库

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:53:59 27 4
gpt4 key购买 nike

我有使用以下 makefile 编译良好的代码

all: sample

sample: sample.o mylib.o
g++ -Wall -O3 -ffast-math -funroll-loops -ansi -pedantic-errors -o sample -L/usr/lib sample.o mylib.o -lboost_serialization -lboost_iostreams -lz -I /usr/include/boost

sample.o: sample.cpp
g++ -O3 -ffast-math -funroll-loops -ansi -pedantic-errors -I /usr/include/boost -c -o sample.o sample.cpp

mylib.o: mylib.cc mylib.h
g++ -O3 -ffast-math -funroll-loops -ansi -pedantic-errors -I /usr/include/boost -c -o mylib.o mylib.cc

现在,mylib.cc 和 mylib.h 包含很多我想分享的有用代码。但是,这取决于我的目标受众可能没有或不知道如何正确安装的 Boost。

有没有办法让我分发一个带有 mylib.h 的静态 mylib.o,我的最终用户可以编译成他们自己的代码而无需安装 Boost?

补充说明:mylib.h 不包含任何 BOOST header ,但 mylib.cc 确实包含 Boost header 。

最佳答案

如果 mylib.h 包含 Boost 头文件,则这些头文件需要以某种形式存在于开发人员的系统中。至少,您必须将那部分 Boost 与您的代码一起发布。

但是,如果您可以创建一个较小的头文件,它只公开您的库的一部分,并且不包含或引用 Boost 中的任何内容,那么您就可以。大多数 Boost 都是头文件(所需的 Boost 代码已经编译到您的库中)。

关于c++ - g++,为分发创建静态库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12645137/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com