C:创建静态库并使用 Makefile 进行链接

2024-04-10

我在尝试着了解静态和共享库 http://randu.org/tutorials/c/libraries.php.

我想执行以下操作来创建一个单独编译和链接的 makefile,以便创建和链接静态库 形成最终的静态可执行文件。

我有以下 Makefile 代码,但出现以下错误

Makefile:13: *** missing separator. Stop.

但我也试图了解如何实际链接/创建库。

如果我之后运行命令line 12它们在终端中起作用,但在 makefile 中不起作用。

myProgram: main.o addSorted.o freeLinks.o
    gcc -lm -o myProgram main.o addSorted.o freeLinks.o

main.o: main.c
    gcc -O -c -lm main.c main.h

addSorted.o: addSorted.c addSorted.h
    gcc -O -c -lm addSorted.c

freeLinks.o: freeLinks.c freeLinks.h
    gcc -O -c -lm freeLinks.c

ar rc libmylib.a main.o addSorted.o freeLinks.o    //Error Line

ranlib libmylib.a

gcc -o foo -L. -lmylib foo.o

clean:
    rm -f myProgram main.o addSorted.o freeLinks.o

另外,如果您可以帮助改进代码,我将非常感激。


尝试这个:

all: myProgram

myProgram: main.o libmylib.a #libmylib.a is the dependency for the executable
        gcc -lm -o myProgram main.o -L. -lmylib

main.o: main.c
        gcc -O -c main.c main.h

addSorted.o: addSorted.c addSorted.h
        gcc -O -c addSorted.c

freeLinks.o: freeLinks.c freeLinks.h
        gcc -O -c freeLinks.c

libmylib.a: addSorted.o freeLinks.o #let's link library files into a static library
        ar rcs libmylib.a addSorted.o freeLinks.o

libs: libmylib.a

clean:
        rm -f myProgram *.o *.a *.gch #This way is cleaner than your clean

这组规则首先编译所有文件,然后将库(libmylib.a)作为目标并使用它的工件来链接可执行文件。 我还添加了单独的冗余目标形式,仅制作库。 需要的文件:

user@host> ls
addSorted.c  addSorted.h  freeLinks.c  freeLinks.h  main.c  main.h Makefile
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C:创建静态库并使用 Makefile 进行链接 的相关文章

  • 检测到 NuGet 包的版本冲突

    我正在开发 ASP Net core 2 1 Web 应用程序项目 我的解决方案中有 1 个项目和 3 个其他库 它是高级架构 数据访问层 DAL 业务层 BL 公共层 CL 所以我需要添加引用来连接一些库和项目 我已经添加了CL参考我的项
  • 将处理后的图形绘制到另一个图形中

    我想将一个经过处理的图形绘制到另一个图形中 I have two graphics var gHead Graphics FromImage h var gBackground Graphics FromImage b Transform
  • 在 C++ 中分割大文件

    我正在尝试编写一个程序 该程序接受一个大文件 任何类型 并将其分成许多较小的 块 我想我已经有了基本的想法 但由于某种原因我无法创建超过 12 kb 的块大小 我知道谷歌等上有一些解决方案 但我更感兴趣的是了解这个限制的根源是什么 然后实际
  • 如何进行带有偏差的浮点舍入(始终向上或向下舍入)?

    我想以偏置舍入浮动 要么总是向下 要么总是向上 代码中有一个特定的点 我需要这个 程序的其余部分应该像往常一样四舍五入到最接近的值 例如 我想四舍五入到最接近的 1 10 倍数 最接近 7 10 的浮点数约为 0 69999998807 但
  • 通信对象 System.ServiceModel.Channels.ServiceChannel 不能用于通信

    通信对象System ServiceModel Channels ServiceChannel 无法用于通信 因为它处于故障状态 这个错误到底是什么意思 我该如何解决它 您收到此错误是因为您让服务器端发生 NET 异常 并且您没有捕获并处理
  • 使用实体框架从集合中删除项目

    我正在使用DDD 我有一个 Product 类 它是一个聚合根 public class Product IAggregateRoot public virtual ICollection
  • 在 C++11 中省略返回类型

    我最近发现自己在 C 11 模式下的 gcc 4 5 中使用了以下宏 define RETURN x gt decltype x return x 并编写这样的函数 template
  • Linux TUN/TAP:无法从 TAP 设备读回数据

    问题是关于如何正确配置想要使用 Tun Tap 模块的 Linux 主机 My Goal 利用现有的路由软件 以下为APP1和APP2 但拦截并修改其发送和接收的所有消息 由Mediator完成 我的场景 Ubuntu 10 04 Mach
  • try-catch 中未处理的异常

    try list from XElement e in d Descendants wix File where e Attribute Name Value Contains temp Name e Parent Parent Attri
  • 在 Xcode4 中使用 Boost

    有人设置 C Xcode4 项目来使用 Boost 吗 对于一个简单的 C 控制台应用程序 我需要在 Xcode 中设置哪些设置 Thanks 用这个来管理它 和这个
  • 在 C# 中将位从 ulong 复制到 long

    所以看来 NET 性能计数器类型 http msdn microsoft com en us library system diagnostics performancecounter aspx有一个恼人的问题 它暴露了long对于计数器
  • 两组点之间的最佳匹配

    I ve got two lists of points let s call them L1 P1 x1 y1 Pn xn yn and L2 P 1 x 1 y 1 P n x n y n 我的任务是找到它们点之间的最佳匹配 以最小化它
  • 通过不同 DLL 或 EXE 中的指针或引用访问 STL 对象时发生访问冲突

    我在使用旧版 VC6 时遇到以下问题 我只是无法切换到现代编译器 因为我正在处理遗留代码库 http support microsoft com kb 172396 http support microsoft com kb 172396
  • 如何排列表格中的项目 - MVC3 视图 (Index.cshtml)

    我想使用 ASP NET MVC3 显示特定类型食品样本中存在的不同类型维生素的含量 如何在我的视图 Index cshtml 中显示它 an example 这些是我的代码 table tr th th foreach var m in
  • UWP 无法在两个应用程序之间创建本地主机连接

    我正在尝试在两个 UWP 应用程序之间设置 TCP 连接 当服务器和客户端在同一个应用程序中运行时 它可以正常工作 但是 当我将服务器部分移动到一个应用程序并将客户端部分移动到另一个应用程序时 ConnectAsync 会引发异常 服务器未
  • C# 搜索目录中包含字符串的所有文件,然后返回该字符串

    使用用户在文本框中输入的内容 我想搜索目录中的哪个文件包含该文本 然后我想解析出信息 但我似乎找不到该字符串或至少返回信息 任何帮助将不胜感激 我当前的代码 private void btnSearchSerial Click object
  • 是否有一个 C++ 库可以从 PDF 文件中提取文本,例如 PDFBox for Java? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 去年 我使用 PDFBox 在 Java 中创建了一个应用程序来获取某些 PDF 文件中的原始文本 现在
  • 以编程方式使用自定义元素创建网格

    我正在尝试以编程方式创建一个网格 并将自定义控件作为子项附加到网格中 作为 2x2 矩阵中的第 0 行第 0 列 为了让事情变得更棘手 我使用了 MVVM 设计模式 下面是一些代码可以帮助大家理解这个想法 应用程序 xaml cs base
  • 热重载时调用方法

    我正在使用 Visual Studio 2022 和 C 制作游戏 我想知道当您热重新加载应用程序 当它正在运行时 时是否可以触发一些代码 我基本上有 2 个名为 UnloadLevel 和 LoadLevel 的方法 我想在热重载时执行它
  • Swagger 为 ASP.CORE 3 中的字典生成错误的 URL

    当从查询字符串中提取的模型将字典作为其属性之一时 Swagger 会生成不正确的 URL 如何告诉 Swagger 更改 URL 中字典的格式或手动定义输入参数模式而不自动生成 尝试使用 Swashbuckle 和 NSwag 控制器 pu

随机推荐

  • 如何创建自己的 Haar 级联分类器以进行自定义对象检测? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想检测汽车 但可用的 xml 文件对于准确检测来说不太强大 如何创建自定义 xml 文件 我可以为任何对象创建 任何帮助 将不胜感激
  • 如何使用 JQuery 访问 WTForm

    我想请求有关访问 WTForm 字段的帮助 我有以下表格 class model bolt InputForm FlaskForm Bolt Inputs bolt size SelectField Bolt size mm choices
  • 动态初始化

    C 03标准 basic start init 第3点 states 是否动态是实现定义的 命名空间对象的初始化 8 5 9 4 12 1 12 6 1 作用域是在 main 的第一个语句之前完成的 如果 初始化被推迟到第一次之后的某个时间
  • 如何在使用 jQuery 添加新行时刷新简单的数据表

    我认为这个很简单 但我找不到与 ajax 加载的数据或数组中提供的数据无关的参考 我在现有的 HTML 表上使用 DataTables 基本代码如下 table wizard dataTable lengthChange false iDi
  • 测试使用 IntersectionObserver 的代码

    我的应用程序中有一个处理无限滚动分页的 JavaScript 组件 我正在尝试重写它以使用IntersectionObserver 如上所述here https developers google com web updates 2016
  • 为每个因子组添加单独的 vlines 到 ggplot(变量重要性随机森林的点图)

    我正在使用 ggplot2 制作随机森林中六个相关变量重要性结果的点图 我的数据 我已经使用 reshape2 将其转换为长格式 如下所示 我的真实数据集有点大 Factor Group Value Gender A 0 000127 Ag
  • 如何在 emacs elisp 中查找哪个文件提供该功能

    目前我正在使用加载历史记录变量来查找某个功能来自的文件 假设找到该文件的特征gnus来自 我在暂存缓冲区中执行以下代码 该代码在单独的行中连续打印文件名和符号 dolist var load history princ format s n
  • 正则表达式和 GWT

    我的问题是 在GWT中使用正则表达式有没有好的解决方案 例如 我对 String split regex 的使用不满意 GWT 将代码翻译为 JS 然后将正则表达式用作 JS 正则表达式 但我无法使用 Java Matcher 或 Java
  • 使应用程序在越狱设备上自行重启

    我的 iOS 应用程序是否可以在每次用户访问其主屏幕时自动重新启动 这是针对越狱设备的 该应用程序不适用于应用程序商店 一般来说 鉴于应用程序外部的特定用户操作 如何让我的应用程序重新启动 加速度计 如果您只想让您的应用程序在遇到某些加速计
  • 使用其名称来响应渲染组件

    我正在试验 React js 它运行得非常好 我想知道是否可以将类注入到其他类中 如下所示 var Container React createClass render function lt this props implComponen
  • Windows 中的 Perl Kill(0, $pid) 总是返回 1

    我正在尝试制作一个 Perl 脚本来运行 Windows 中的一组其他程序 我需要能够捕获进程的 stdout stderr 和退出代码 并且需要能够查看进程是否超出了分配的执行时间 现在 我的代码的相关部分如下所示 pid open3 w
  • 如何在 Rails 中实现计数器缓存?

    我有一个帖子控制器和一个评论控制器 帖子有很多评论 评论属于帖子 关联是在 counter cache 选项打开的情况下设置的 如下所示 Inside post rb has many comments Inside comment rb
  • 自定义指令中的 ng-class 不观察更新

    我正在尝试创建一个像这样使用的指令
  • OpenCV 模板匹配 N 个最佳匹配不起作用

    我已经为此苦苦挣扎了很长一段时间 但似乎找不到这里的问题 让我尝试引导您完成整个过程 我正在尝试为我的模板匹配获取 10 个最佳边界框 不会在这里显示整个图像 但这是我的cv mat当我循环遍历cv mat搜索最低值 结果 int a b
  • ggplot2:如何调整图例中的线型+顺序?

    我想调整以下 ggplot 中的线型 因此 我在 data frame df 中引入另一列来表示线型 但是一旦我将其转换为因子 线型而不是 方法 就会出现在图例中 参见试验 3 如何获得传说中的 方法 最后我希望能够 自由选择线型 自由选择
  • 为什么反射可以访问C#中类的受保护/私有成员?

    为什么反射可以访问C 中类的受保护 私有成员 这对课堂来说不安全吗 为什么反思会被赋予如此大的力量 这是一个反模式 http en wikipedia org wiki Anti pattern 会员可访问性不是安全功能 它的存在是为了保护
  • 仅在 iOS 和 Android 中处理数据通知失败

    我有一个发送推送通知的服务器 对于Android 我覆盖onMessageReceived来处理消息 对于 iOS 我使用NotificationExtension I need更改传入的推送通知 我不知道标题和服务器端的所有内容 客户端知
  • HttpClient HttpResponseMessage 地址/URI

    我正在开发一个 C WinRT 应用程序 该应用程序向网络服务器发出 POST 和 GET 请求 有谁知道使用 HttpClient 对象时是否有办法获取响应 URI 地址 如果我使用 HttpWebRequest HttpWebRespo
  • 使用jq连接多个文件中的JSON数组

    我有一系列包含记录数组的 JSON 文件 例如 cat f1 json records a 1 a 3 cat f2 json records a 2 我想 1 从每个记录中提取一个字段 2 输出一个包含所有输入文件中所有字段值的数组 第一
  • C:创建静态库并使用 Makefile 进行链接

    我在尝试着了解静态和共享库 http randu org tutorials c libraries php 我想执行以下操作来创建一个单独编译和链接的 makefile 以便创建和链接静态库 形成最终的静态可执行文件 我有以下 Makef