在以下示例中评估 fn-main 时,我希望将 some-fn 代码附加到 fn-main 块的开头,以便在评估之前进行扩展。
#+NAME: some-fn
#+BEGIN_SRC C
void printother() {
printf("WOrld");
}
#+END_SRC
#+NAME: fn-main
#+BEGIN_SRC C :noweb yes :main no :prologue "<<some-fn>>"
int main() {
printother();
printf("Hello");
}
#+END_SRC
目前,评估 fn-main 会导致以下错误:
/tmp/ccAuvLn1.o: In function `main':
C-src-5927aNL.c:(.text+0xa): undefined reference to `printother'
collect2: error: ld returned 1 exit status
/bin/bash: /tmp/babel-5927f7v/C-bin-5927nXR: No such file or directory
执行前最终所需的扩展块:
void printother() {
printf("WOrld");
}
int main() {
printother();
printf("Hello");
}
该:noweb eval
论点适用于整个块,这消除了一些块纠缠和执行的可能性。它应该可以工作,但目前给我一个错误,Wrong type argument: stringp, nil
.