从现有目标文件创建共享库

发布于 2024-08-28 00:26:41 字数 107 浏览 7 评论 0原文

我的 IDE 中有一个项目。我需要创建一个共享库以在扩展中使用。我不想使用共享库设置复制该项目。有没有办法使用我现有项目中的目标文件(.o)构建共享库?据我了解,我可以为此编写一个 makefile。

I have a project in my IDE. I need to make a shared library of it to use in extensions. I don't want to make a copy of this project with shared-library settings. Is there any way to build a shared library using the object files (.o) from my already existing project? As I understand, I can write a makefile for this.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

咆哮 2024-09-04 00:26:41

我假设您使用的是某种 Unix,并且可能正在使用 GNU 工具链。在这种情况下,要创建正确的共享库,您需要使用与位置无关的代码标志(-fpic 或 -fPIC)编译代码,然后才能创建共享库。除非您的 .o 文件已经使用这些标志进行了编译,否则您很可能不会得到一个可以工作的共享库。

如果它们已经编译为与位置无关的代码,则通常的 g++ -shared ... 应该可以解决问题。

I assume you're on some sort of Unix and are probably using the GNU toolchain. In that case, to create a proper shared library, you'd need to compile your code using the position-independent code flags (-fpic or -fPIC) before you can create a shared library. Unless your .o files are already compiled with those flags, chances are you won't end up with a working shared lib.

If they already are compiled for position independent code, the usual g++ -shared ... should do the trick.

变身佩奇 2024-09-04 00:26:41

g++ -shared -fPIC -o myshared.so *.o

g++ -shared -fPIC -o myshared.so *.o

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文