我知道我们可以使用类似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/

10-10 11:16