我知道我们可以使用类似getcwd()
的方法打印当前工作目录的路径,但是如果程序是在一个地方编译的,并且可执行文件被复制到另一个地方,那么它将给出结果作为新目录。
如何在编译过程中存储getcwd()
或其他值?
最佳答案
可以将其作为编译时定义传递:
#include <stdio.h>
int main(void) {
printf("COMPILE_DIR=%s\n", COMPILE_DIR);
return 0;
}
然后:
/dir1$ gcc -DCOMPILE_DIR=\"$(pwd)\" current.c -o current
导致:
/dir1$ ./current
COMPILE_DIR=/dir1
/dir1$ cd /dir2
/dir2$ cp /dir1/current ./
/dir2$ ./current
COMPILE_DIR=/dir1
关于c - 如何在C中打印程序编译位置的路径,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52533659/