我想使用静态模式规则来指定一类目标的默认配方,但为一些特定目标覆盖该配方。
这是一个简单的例子,说明了我正在尝试做的事情。对于包含文件“test.py”的每个目录,我想调用命令“run_test.py”,除非该目录名为“one”,否则我想调用一组不同的命令:
TESTS := $(shell find * -name "test.py" | xargs -I {} dirname {})
.PHONY: $(TESTS)
all: $(TESTS)
$(TESTS): %:
python run_test.py $@
one:
python run_test.py $@ mode=1
python run_test.py $@ mode=2
python check_results.py $@
Run Code Online (Sandbox Code Playgroud)
这有效,但会发出警告:
$ make
Makefile:12: warning: overriding commands for target `one'
Makefile:9: warning: ignoring old commands for target `one'
Run Code Online (Sandbox Code Playgroud)
还有其他方法可以做到这一点,或者消除警告吗?
我正在尝试使用/dev/net/tun设备创建 Docker 映像,以便可以在 Linux、Mac 和 Windows 主机上使用该映像。设备不需要访问主机的网络接口。
请注意,传递--device /dev/net/tun:/dev/net/tuntodocker run是不可取的,因为这仅适用于 Linux。
容器启动后,我可以通过运行手动添加设备:
$ sudo mkdir /dev/net
$ sudo mknod /dev/net/tun c 10 200
$ sudo ip tuntap add mode tap tap
Run Code Online (Sandbox Code Playgroud)
但是当我将这些行添加到 Dockerfile 时,它会导致错误:
Step 35/46 : RUN mkdir /dev/net
---> Running in 5475f2e4b778
Removing intermediate container 5475f2e4b778
---> c6f8e2998e1a
Step 36/46 : RUN mknod /dev/net/tun c 10 200
---> Running in fdb0ed813cdb
mknod: /dev/net/tun: No such file or directory
The command '/bin/sh -c …Run Code Online (Sandbox Code Playgroud) 我想在自定义元素内动态创建一个 CodeMirror 实例,并将其存在于元素的 Shadow DOM 内。例如:
<code-mirror>foo</code-mirror>
<script>
window.customElements.define('code-mirror', class extends HTMLElement {
constructor() {
super();
let shadowRoot = this.attachShadow({mode: 'open'});
}
connectedCallback() {
this.cm = CodeMirror(this.shadowRoot, {lineNumbers: true});
}
});
</script>
Run Code Online (Sandbox Code Playgroud)
这“有效”,但布局完全错误。左边距设置为窗口的宽度,行号显示不正确,并且选择逻辑垂直偏离了几行。
这是一个演示布局问题的 jsfiddle:链接
建议?
javascript web-component codemirror shadow-dom custom-element
这个问题以前曾针对gcc提出过,但达尔文的 ld (clang?)似乎以不同的方式处理这个问题。
假设我main()在两个文件 main1.cc 和 main2.cc 中定义了一个函数。如果我尝试将它们一起编译,我将得到(所需的)重复符号错误:
$ g++ -o main1.o -c main1.cc
$ g++ -o main2.o -c main2.cc
$ g++ -o main main1.o main2.o
duplicate symbol _main in:
main1.o
main2.o
ld: 1 duplicate symbol for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)
但是,如果我将其中之一粘贴到静态库中,当我链接应用程序时,我不会收到错误:
$ ar rcs libmain1.a main1.o
$ g++ -o main libmain1.a main2.o
(no error)
Run Code Online (Sandbox Code Playgroud)
使用 gcc,您可以使用 lib 包装--whole-archive,然后 gcc 的 ld 将产生错误。此选项对于随 …
我想将一个std :: bind()或lambda的结果包装在一个帮助函数中,该函数跟踪函数调用的执行时间.我想要一个可以使用任意数量的参数(和类方法)的通用解决方案,并且兼容c ++ 11.
我的目的是获取包装函数并将其传递给boost :: signals2 :: signal,因此生成的函数对象需要与原始函数的签名相同.
我基本上正在寻找一些Wrapper像这样工作的神奇类或函数:
std::function<void(int)> f = [](int x) {
std::cerr << x << std::endl;
};
boost::signals2::signal<void(int)> x_signal;
x_signal.connect(Wrapper<void(int)>(f));
x_signal(42);
Run Code Online (Sandbox Code Playgroud)
这将需要多长时间才能打印42.
谢谢!
boost ×1
c++ ×1
c++11 ×1
clang ×1
codemirror ×1
darwin ×1
docker ×1
dockerfile ×1
javascript ×1
ld ×1
makefile ×1
mknod ×1
shadow-dom ×1
tun ×1
xcode ×1