小编zap*_*hod的帖子

转义Makefile中文件名中的冒号

有没有办法让GNU make与包含冒号的文件名一起正常工作?

我遇到的具体问题恰好涉及模式规则.这是一个简化版本,不依赖于剪切和粘贴制表符:

% make --version
GNU Make 3.81
Copyright (C) 2006  Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

This program built for x86_64-redhat-linux-gnu
% cat Makefile
COLON := \:
all: ; true
%.bar: ; cp $< $@
x.bar: x.foo
%.foo: ; touch $@
a$(COLON)b.bar: a$(COLON)b.foo
all: x.bar a$(COLON)b.bar
clean: ; rm -f *.foo *.bar
% make clean
rm …
Run Code Online (Sandbox Code Playgroud)

unix makefile gnu-make

16
推荐指数
2
解决办法
9255
查看次数

如何在ems中缩放SVG多边形?

我正在将一个<svg>元素直接嵌入到HTML5文档中,我想根据页面的字体大小来缩放重复的背景图案.没问题,SVG支持CSS单位,所以我只能在ems中指定大小,对吗?

SVG规范声称 " SVG中的所有坐标长度都可以指定,有或没有单位标识符." 事实上,这两者都完全符合我的希望:

<rect x='1em' y='2em' width='3em' height='4em' />
<circle cx='6em' cy='7em' r='8em' />
Run Code Online (Sandbox Code Playgroud)

但是多边形(例如)对"坐标"这个词有完全不同的定义,这样就会产生错误而不是绘制1 em三角形:

<polygon points='0 0, 0 1em, 1em 0' />
Run Code Online (Sandbox Code Playgroud)

路径是相同的 - 可以理解,因为他们已经将字母用于不同的目的.

而诸如"scale"之类的转换需要一个"数字",而不是"坐标"或"长度",所以这也是不允许的(我的浏览器似乎默默地忽略了"transform"属性):

<polygon points='0 0, 0 1, 1 0' transform='scale(1em)' />
Run Code Online (Sandbox Code Playgroud)

所以我想我甚至无法弄清楚如何绘制1 em三角形,更不用说更复杂了.我是否忽视了合理的做法?那不合理的方式呢?我应该放弃并使用一个<canvas>元素,还是会更糟?

html5 svg

10
推荐指数
1
解决办法
9013
查看次数

从Python设置gzip时间戳

我对使用Python gzip模块压缩数据感兴趣.碰巧我希望压缩输出是确定性的,因为通常情况下这通常是一个非常方便的属性 - 如果一些非gzip感知的进程要在输出中寻找变化,比如说,或者如果输出将以加密方式签名.

不幸的是,每次输出都不同.据我所知,唯一的原因是gzip头中的timestamp字段,Python模块总是填充当前时间.我不认为你真的被允许有一个没有时间戳的gzip流,这太糟糕了.

在任何情况下,Python gzip模块的调用者似乎都没有办法提供底层数据的正确修改时间.(实际gzip程序似乎尽可能使用输入文件的时间戳.)我想这是因为基本上唯一关心时间戳的是gunzip写入文件时的命令 - 现在,我,因为我想要确定性的输出.这是不是要求太过分了?

还有其他人遇到过这个问题吗?

gzip使用Python的任意时间戳来获取某些数据的最不可靠的方法是什么?

python gzip

7
推荐指数
2
解决办法
1892
查看次数

如何在Perl中编写HTTP服务器?

Perl标准库或CPAN或其他地方是否有Web服务器或HTTP服务器模块?我想我正在寻找相当于Python 3的http.server模块.谢谢!

perl cpan http

7
推荐指数
2
解决办法
8126
查看次数

在Windows下检索USB键盘的序列号

许多USB设备包含唯一的序列号(实际上是Unicode字符串),主机可以将其与16位供应商和产品ID号一起使用,以唯一地标识设备.

我正在试图弄清楚如何编写一个能够显示连接到系统的所有USB人机接口设备列表的Windows应用程序.该列表对于每个HID都有一行,包括系统键盘.列表中将列出供应商ID,产品ID和序列号.

我可以通过SetupDiGetClassDevs使用返回的GUID 调用HidD_GetHidGuid并通过重复调用循环遍历结果来获取USB HID列表SetupDiEnumDeviceInterfaces.然后我可以调用SetupDiGetDeviceInterfaceDetail以获取每个设备的路径,我可以打开它CreateFile,只要我小心不要求读取或写入权限,这将被系统键盘拒绝.从那里我可以通过调用获得供应商和产品ID号HidD_GetAttributes.

我弄清楚的是如何检索序列号字符串.当我搜索这个问题的解决方案时,我发现了很多关于如何获取USB大容量存储设备的序列号的信息,但看起来没有什么看起来可能适用于任何其他类型的USB设备.我很乐意发现检索序列号字符串的泛型方法或特定于HID的方法.

我有一个到Win32的移植的感觉libusb可能没有太多的麻烦管理这个,但不幸的是,我需要一个只依赖Windows自带的库,如一个解决方案setupapi,并hid包含上述功能的DLL.

任何建议将非常感谢!

windows hardware usb

3
推荐指数
1
解决办法
6007
查看次数

标签 统计

cpan ×1

gnu-make ×1

gzip ×1

hardware ×1

html5 ×1

http ×1

makefile ×1

perl ×1

python ×1

svg ×1

unix ×1

usb ×1

windows ×1