技术标签: C/C++ c++ Linux c语言 makefile
自动遍历源文件文件部分参考 https://blog.csdn.net/yuliying/article/details/49635485
AllDIRS := $(shell ls -R | grep '^\./.*:$$' | awk '{gsub(":","");print}') .
CSRCS = $(foreach n,$(AllDIRS) , $(wildcard $(n)/*.c))
CXXSRCS = $(foreach n,$(AllDIRS) , $(wildcard $(n)/*.cpp))
暂时无法遍历头文件,使用时如头文件不在当前路径,需添加头文件路径,如:
INC_PATH = -I $(SRC_PATH) \
-I $(SRC_PATH)/inc\
C和CPP文件分开编译,使用g++链接
%.o : %.cpp
$(CXX) $(DEBUG_FLAG) $< -c -o [email protected] $(INC_PATH) $(LIB_PATH);
%.o : %.c
$(CC) $(DEBUG_FLAG) $< -c -o [email protected] $(INC_PATH) $(LIB_PATH);
$(TARGET) : $(OBJS)
$(CXX) $(DEBUG_FLAG) $^ -o [email protected] $(INC_PATH) $(LIB_PATH);
@echo "> build success <"
如需链接库(如线程-lpthread)则将选项加在LIB_PATH = 后
LIB_PATH = -lpthread
如需添加其他编译选项(如-g支持GDB调试)则将选项加在DEBUG_FLAG :=后
DEBUG_FLAG := -g
TARGET = exe
CC = gcc
CXX = g++
AllDIRS := $(shell ls -R | grep '^\./.*:$$' | awk '{gsub(":","");print}') .
CSRCS = $(foreach n,$(AllDIRS) , $(wildcard $(n)/*.c))
CXXSRCS = $(foreach n,$(AllDIRS) , $(wildcard $(n)/*.cpp))
OBJS := $(CSRCS:.c=.o) $(CXXSRCS:.cpp=.o)
SRC_PATH = .
INC_PATH = -I $(SRC_PATH) \
-I $(SRC_PATH)/inc\
LIB_PATH = -lpthread
DEBUG_FLAG =
#DEBUG_FLAG := -g
%.o : %.cpp
$(CXX) $(DEBUG_FLAG) $< -c -o [email protected] $(INC_PATH) $(LIB_PATH);
%.o : %.c
$(CC) $(DEBUG_FLAG) $< -c -o [email protected] $(INC_PATH) $(LIB_PATH);
$(TARGET) : $(OBJS)
$(CXX) $(DEBUG_FLAG) $^ -o [email protected] $(INC_PATH) $(LIB_PATH);
@echo "> build success <"
.PHONY:clean
clean:
rm -f $(OBJS) $(TARGET)
L2-021. 点赞狂魔时间限制200 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者陈越微博上有个“点赞”功能,你可以为你喜欢的博文点个赞表示支持。每篇博文都有一些刻画其特性的标签,而你点赞的博文的类型,也间接刻画了你的特性。然而有这么一种人,他们会通过给自己看到的一切内容点赞来狂刷存在感,这种人就被称为“点赞狂魔”。他们点赞的标签非常分散,无法体现出明显的特性...
L2-021. 点赞狂魔时间限制200 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者陈越微博上有个“点赞”功能,你可以为你喜欢的博文点个赞表示支持。每篇博文都有一些刻画其特性的标签,而你点赞的博文的类型,也间接刻画了你的特性。然而有这么一种人,他们会通过给自己看到的一切内容点赞来狂刷存在感,这种人就被称为“点赞狂魔”。他们点赞的标签非常分散,无法体现出明显的特性...
L2-021 点赞狂魔 微博上有个“点赞”功能,你可以为你喜欢的博文点个赞表示支持。每篇博文都有一些刻画其特性的标签,而你点赞的博文的类型,也间接刻画了你的特性。然而有这么一种人,他们会通过给自己看到的一切内容点赞来狂刷存在感,这种人就被称为“点赞狂魔”。他们点赞的标签非常分散,无法体现出明显的特性。本题就要求你写个程序,通过统计每个人点赞的不同标签的数量,找出前3名点赞狂魔。输入格式:...
中文释义如下:字节 类型 字节序 用途 0–3 int32 大端序 文件编号 (永远是十六进制数0x0000270a) 4–23 int32 大端序 五个没有被使用的32位整数 24–27 int32 大端序 文件长度,包括文件头。(用16位整数表示) 28–31 int32 小端序 ...
如题:在一次编译连接出错后就出现 LINK : warning LNK4076: invalid incremental status file './Debug/.ilk'; linking nonincr这样的连接警告.Cause:工程中Debug目录下的.ilk文件出错,导致警告的发生.其实该警告没有什么大不了,对编译连接影响不大,其作用主要在于记录每次编译时工程中修改过
数据仓库的两个重要的概念是:- 进入仓库的数据不可变;- 记录数据的变化历史。如何理解呢?不可变,意味着进到仓库的数据就类似归档了。原则上,不能对仓库里面的数据进行修改;如果随意的对仓库里面的数据进行修改,这个“仓库”就和交易系统没区别了,无法起到正确反映业务过程的作用。此外,适合于数据仓库的存储服务,如早年Oracle和DB2都有针对数据仓库的Data Warehouse产品,以及Hadoop体系的一系列组件,都是针对“批量插入,无更改或少量更改”而专门设计的,所以才能达到查询效率的最优化。也因此
CogCalibNPointToNPointTool工作原理CogCalibNPointToNPointTool工具两组点来校正图像,一组点为像素坐标点,另一组点是像素坐标点对应的物理坐标点,此工具用这两组点计算一个最佳的2D转换,并将此2D转换保存工具中,在此工具运行的时候将此2D转换添加到输入图像的坐标空间树中,并输出校正后的图像。CogCalibNPointToNPointTool使用步骤CogCalibNPointToNPointTool工具的使用可以分为以下几步:1)通过CogPM
(本文转自: http://blog.163.com/[email protected]/blog/static/665971972010109114247408/)一个发送E-MAIL的脚本也许是你能够在Web 站点上找到的最普通的脚本之一了,虽然它很简单,一个邮件脚本有时会令程序员非常沮丧.PHP中有一个叫做mail()的函数,它只需要知道接收方的地址 和信件主体就可以发送邮件,但...
使用weex新建一个app,发现npm报错:npm : 无法加载文件 D:\Program Files\nodejs\node_global\weex.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。所在位置 行:1 字符: 1+ npm run dev+ ~~~ + CategoryInfo : Securi
例子一、最简单的理解就是可以做隐式类型转换例子二、然后也可以是扩展方法,这个和C#的语法糖看起来相似,L14 和 L15 是一样的例子三、隐式参数,这里定义了一个 trait 我是理解为接口,通过定义一个实例对象并实现其中的方法,最终调用的时候,我写的是showOne(12),编译器在执行时会变成showOne(12)(jwInt)这个例子如果想要扩展到 String,需要继续实例化一个 jwString:JW[String] 对象,也就是每次都要写很多类型的代码,可以简...
该楼层疑似违规已被系统折叠隐藏此楼查看此楼尊敬的玩家,2020年3月19日(周四)7:00-11:00游戏将进行服务器停机维护更新,服务器停机期间将无法登陆游戏。维护预计进行4小时,如果计划时间内未完成维护,开服时间也将顺延。请您提前计划下线时间,避免由于掉线造成的损失。由此对您造成的不便我们深表歉意。感谢大家的理解和支持,服务器维护结束后,我们将发放补偿奖励,祝您游戏愉快!更新内容说明:【活动...
今日推荐借助Redis锁,完美解决高并发秒杀问题还在直接用JWT做鉴权?JJWT真香Spring Boot 操作 Redis 的各种实现Fluent Mybatis 牛逼!...