makefile第七讲

更多精彩内容在公众号。

当make执行完后,我们期望将最终的可执行文件安装到系统目录下,这样在不同的目录下都可以执行编译的可执行文件,相当于做成了个命令。这个就需要用到make install。

源文件如下:用于判断系统是小端还是大端

#include <arpa/inet.h>
#include <stdio.h>void big_little_endian()
{union{short s;char c[sizeof(short)];}un;un.s=0x0102;if(sizeof(short) == 2){if(un.c[0] == 1 && un.c[1] == 2)printf("big_endian\n");else if(un.c[0] == 2 && un.c[1] ==1)printf("little_endian\n");else{printf("unknown\n");}}
}void main()
{big_little_endian();
}

makefile文件:

subdir:=.

srcfile:=$(foreach dir,$(subdir),$(wildcard $(dir)/*.c))

dir=$(notdir $(srcfile))

objfile=$(patsubst %.c, %.o, $(dir))

targetfile=net_work

cc=gcc

FLAGS=$(addprefix -l,pthread)

prefix = /usr/local

exec_prefix = $(prefix)

bindir = $(exec_prefix)/bin

$(targetfile): $(objfile)

  echo $@

  echo $>

  $(cc) -o $@ $^ $(FLAGS)

$(objfile):$(srcfile)

  echo $>

  $(cc) -c $^

clean:

  rm *.o $(targetfile)

install:

  install -d $(bindir)

  install -m 0755 net_work $(bindir)

uninstall:

  rm $(bindir)/net_work

执行make然后执行make install提示如下错误,这是因为usr/local/bin需要root权限

install -d /usr/local/bin
install -m 0755 net_work /usr/local/bin
install: cannot stat 'net_work': No such file or directory
Makefile:38: recipe for target 'install' failed
make: *** [install] Error 1

加上sudo后执行成功

sudo make install

install -d /usr/local/bin
install -m 0755 net_work /usr/local/bin

更多精彩内容在公众号。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/70.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

性能分析与调优

性能分析方法 自底向上&#xff1a;通过监控硬件及操作系统性能指标&#xff08;cpu、内存、磁盘、网络等硬件资源的性能指标&#xff09;来分析性能问题&#xff08;配置、程序问题&#xff09; 先检查&#xff0c;再下药 自顶向下&#xff1a;通过生成负载来观察被测试的系…

【ROS2笔记七】ROS中的参数通信

7.ROS中的参数通信 文章目录 7.ROS中的参数通信7.1使用CLI工具调整参数7.2参数通信之rclcpp实现7.2.1创建节点7.2.2rclcpp参数API Reference ROS2中的参数是由键值对组成的&#xff0c;参数可以实现动态调整。 7.1使用CLI工具调整参数 启动turtlesim功能包的环境 ros2 run …

如何在本地创建一个贪吃蛇小游戏node.js服务并实现无公网IP远程游玩

文章目录 前言1.安装Node.js环境2.创建node.js服务3. 访问node.js 服务4.内网穿透4.1 安装配置cpolar内网穿透4.2 创建隧道映射本地端口 5.固定公网地址 正文开始前给大家推荐个网站&#xff0c;前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽…

可信通信(TLS/SSL协议)

比特币&#xff0c;以太坊&#xff0c;超级账本在建立网络连接保证节点间可靠通信的时&#xff0c;都直接采用了传输层安全性协议&#xff08;Transport Layer Security&#xff09;&#xff0c;TLS协议自从1999年发布以来已经广泛的应用在浏览器&#xff0c;电子邮件等应用中了…

OSPF笔记+大实验

OSPF综合大实验---实验报告 配置IP地址 R1&#xff1a; [R1]int g0/0/0 [R1-GigabitEthernet0/0/0]ip add 172.16.33.1 24 [R1-GigabitEthernet0/0/0]int l0 [R1-LoopBack0]ip add 172.168.34.1 24 R2: [R2]int g0/0/0 [R2-GigabitEthernet0/0/0]ip add 172.16.33.2 24…

Keil MDK下如何设置非零初始化变量 及变量指定位置- Arm CompilerV5 和 V6区别

目录 一、Arm CompilerV51.定义变量时&#xff0c;使用编译器扩展属性__attribute__((section("name"), zero_init))来将变量放入指定段中。其中section("name")选择一个指定的段&#xff0c;zero_init告诉编译器将变量放入ZI段。 二、Arm CompilerV61.定义…

Mybatis-plus自定义分页工具

Mybatis-plus自定义分页工具 这里主要是介绍通过MyBatis-Plus使用自定义分页工具进行条件分页查询示例等&#xff0c;方便以后查阅&#xff01;&#xff01;&#xff01; 分页工具类-PageUtils PageUtils package com.wl.cloud.core.utils;import com.baomidou.mybatisplus.cor…

Jmeter接口测试:使用教程(下)

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 关注公众号&#xff1a;互联网杂货铺&#xff0c;回复1 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 上一篇我给大家讲了jmeter的基本介绍跟参数化和jmeter脚…

【Spring Security系列】Spring Security 过滤器详解与基于JDBC的认证实现

前言 上文说到&#xff0c;Spring Security它是一个强大的和高度可定制的身份验证和访问控制框架。它提供了一套丰富的功能&#xff0c;用于保护基于Spring的应用程序。 上文又说到&#xff0c;在Spring Security中&#xff0c;过滤器&#xff08;Filter&#xff09;是一个重…

png静图转换gif动图如何操作?轻松一键快速转换gif动图

想要把多张Png格式图片转换成gif格式动图时要怎么操作&#xff1f;图片常见的有静图和动图&#xff0c;而jpg、png、gif等是最常见的图片格式。想要把png格式图片转换成gif动画还不想下载任何软件的时候就可以使用gif制作工具。不需要下载软件在线就能操作。能够轻轻松松就能快…

北斗卫星系统在海上测量中的创新应用

北斗卫星系统在海上测量中的创新应用 随着全球导航卫星系统技术的飞速发展&#xff0c;北斗卫星系统作为中国自主研发的全球卫星导航系统&#xff0c;在海上测量和导航领域展现出了无可比拟的优势和广阔的应用前景。 一、北斗卫星系统概述 北斗卫星系统是由中国自主研发的全球…

PostgreSQL开发与实战(8.3)锁的维护

作者&#xff1a;太阳 1 锁相关参数 deadlock_timeout&#xff08;integer&#xff09;&#xff1a;默认1s&#xff0c;表示pg数据库仅对锁超时大于1s的情况进行死锁检测。 log_lock_waits : 默认关闭&#xff0c;若打开该参数则表示会将锁超时超过deadlock_timeout的信息记…

理解 HuggingFace 是什么

HuggingFace 是一个开源社区和公司&#xff0c;专注于提供自然语言处理&#xff08;NLP&#xff09;的工具和资源。它的主要特点包括&#xff1a; Transformers 库&#xff1a;HuggingFace 提供了一个名为 Transformers 的 Python 库&#xff0c;该库包含了大量的预训练模型和…

git远程仓库拉取超过1G报错解决办法

第一种 如果浅克隆最近一次提交不会超过1G那就浅克隆 //浅层clone代码 depth 1只会拉取最后一次log&#xff0c; depth(后面数字越大拉取的历史记录越多) 1.git clone --depth 1 远程地址 //拉取完整当前分支 2.git fetch --unshallow利用远程分支名称拉取 git branch -a git…

Unity WebGL 2020 Release-Notes

&#x1f308;WebGL 2020 Release-Notes 版本更新内容2020.3.48WebGL: Any recent desktop version of Firefox, Chrome, Edge or Safari.2020.3.47WebGL: Any recent desktop version of Firefox, Chrome, Edge or Safari.2020.3.46WebGL: Any recent desktop version of Fire…

idea中打印日志不会乱码,但是部署到外部tomcat中乱码了。

问题&#xff1a;如图Tomcat乱码&#xff0c;而且启动时的系统日志不会乱码&#xff0c;webapp中的打印日志才乱码。 idea中的情况如下&#xff1a;正常中文展示。 问题分析&#xff1a;网上分析的原因是Tomcat配置的字符集和web应用的字符集不匹配&#xff0c;网上集中的解决…

idea 打开文件一直loading

背景 用idea打开项目&#xff0c;发现项目目录一直在loading&#xff0c;怎么等也出不来&#xff0c;在网上查说是IDEA的索引出现问题或者是代码库文件过大造成的。 解决方法 在IDEA中&#xff0c;依次点击「File」->「Invalidate Caches/Restart」&#xff0c;然后勾选弹…

Unity类银河恶魔城学习记录12-11 P133 Merge Skill Tree with Parry skill源代码

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释&#xff0c;可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili Parry_Skill.cs using UnityEngine; using UnityEngine.UI;public class P…

MySQL进阶 ==> 引擎选择优化指南

数据库引擎的选择&#xff1a; InnoDB InnoDB存储引擎是Mysql的默认存储引擎。InnoDB存储引擎提供了具有提交、回滚、崩溃恢复能力的事务安全。但是对比MyISAM的存储引擎&#xff0c;InnoDB写的处理效率差一些&#xff0c;并且会占用更多的磁盘空间以保留数据和索引。 存储方…

大模型应用实践闭门研讨会即将召开|爱分析活动

随着人工智能领域大模型技术的快速发展&#xff0c;政府出具很多指导性意见&#xff0c;在最新的《2024年政府工作报告》中&#xff0c;明确提出了开展“人工智能”行动&#xff0c;显示出政府对AI大模型发展的高度重视和支持。金融行业在AI大模型领域的政策支持和工作进展都呈…