在另一个库(SDL和Eclipse)之上构建一个新库
Building a new library on top of another library (SDL and Eclipse)
我正在使用SDL进行一个项目。我觉得我的很多代码可以/应该用于我可能想承担的任何其他项目
我本来打算开始一个库项目,但我不知道如何链接到SDL库。
通常,我会转到"项目设置"并编辑Mingw32链接器以包含库(ming32、SDLmain和SDL)。但是链接器不会显示在设置中。
所以我的问题是:
是否因为构建库只是一个编译操作而没有链接器设置?
总的来说,有可能在现有图书馆的基础上建立一个图书馆吗?也就是说,使用SDL函数和stuts编写我的库。还是我必须获得源代码并在包含代码的情况下完全重建?
此外,在这种情况下,关于共享与静态的建议?
(还有,关于在哪里学习更多编译器和链接器等的任何建议。我在学校里学习了数据结构,但没有更多)
作为介绍,您必须很好地区分静态库和动态库,它们是完全不同的野兽。。。对你的问题说:
是否因为构建库只是一个编译操作而没有链接器设置?
在这种情况下,我猜您正在创建一个静态库。静态库只是组成源树的所有单个对象文件(即编译器生成的.o
文件)在一个对象文件中的集合。不多不少。
对于静态库,您不需要指定哪些是依赖项,因为可以理解,只有在编译最终可执行文件时,您的库才会与它所依赖的所有其他库链接。因此,只有在那个时候(最终可执行版本),才会检测到任何丢失的符号,并且所有其他库都必须可用。
共享库(也称为动态库)是一个可执行文件,它嵌入了它所依赖的所有静态库。它还可以与其他共享库具有外部依赖关系,而这些库不会被嵌入。
总的来说,有可能在现有图书馆的基础上建立一个图书馆吗?也就是说,使用SDL函数和stuts编写我的库。还是我必须获得源代码并在包含代码的情况下完全重建?
无论是对于静态库还是动态库,这都是完全可能的。
此外,在这种情况下,关于共享与静态的建议?
在这种情况下,建议是不可能的,因为您没有指定足够的信息。看看这个:什么时候使用动态库与静态库,以及这个,要有一个指导方针。
(还有,关于在哪里学习更多关于编译器和链接器等的建议。我在学校里学习了数据结构,但没有更多)
我认为上面的两个链接给了你很多信息。如果你想进一步了解细节,你可以从这篇维基百科文章开始,然后从那里浏览。
您正在构建的库可能具有外部依赖关系。这意味着您可以将它与SDL或任何其他您喜欢的外部库链接。
我想这个页面解释了你所有的其他问题:在MingW 中创建DLL
- 函数向量_指针有不同的原型,我可以构建一个吗
- 构建一个由C和C++文件组成的库
- 如何使用 samtools C API 构建一个简单的主.cpp文件
- 如何构建一个 setup.py 来编译C++使用 Python、pybind11 和 Mingw-w64 的扩展?
- 如何构建一个异常类来报告C++中的哪些文件和行号?
- 在 Visual Studio 中构建一个没有 C/C++ 运行时的静态库
- 创建一个类来访问和指定向量类型,并构建一个获取位置并为其分配区域的类
- 使用步骤c++构建一个向量
- 为什么我们需要构建一个提升库,仅仅包含头文件还不够吗,因为提升是模板
- 我正在尝试构建一个简单的程序来从 mysql 数据库中读取信息
- 构建一个真正、完全静态的Qt 5框架和应用程序(Qt 5.8之后)
- CMake 使用 ECM 构建一个库
- 如何构建一个 Map,其中键是抽象基类(而不是值)
- 从命令行构建一个.sln / .vcxproj项目,并使用Visual C 的免费版本构建
- 如果初始化需要shared_from_this,如何在一次调用中构建一个类
- 可以使用Meson构建一个琐碎的项目,但不能使用CMake
- 我如何构建一个从git克隆的单独的增强库
- 构建一个可执行文件,如果是单个 cpp 文件
- 在 Xcode 8.3 上构建一个C++正态分布式随机数生成器
- 在使用 bazel 构建一个简单的应用程序时,得到错误在 '/usr/lib/java/jdk1.8.0_74/bin/java' 找不到 java