gpt4 book ai didi

在 C 中的#include 中转换绝对路径

转载 作者:太空宇宙 更新时间:2023-11-03 17:58:51 24 4
gpt4 key购买 nike

我正在尝试获取一些从存储库中获取的代码以在我的系统上运行。

在其中一个 C 文件中,它包含一个 header 的绝对路径:

 #include "/home/user/.rvm/rubies/ruby-1.9.2-p290/include/ruby-1.9.1/x86_64-linux/ruby/config.h"

由于我的系统中不存在这个文件和目录,所以编译源码失败。

我假设如果我将其更改为指向我个人的 config.h 位置,它将成功但随后在其他系统上失败。

有没有办法指向某个符号链接(symbolic link),然后系统将使用此类文件的正确位置?处理这种情况的最佳方法是什么?

最佳答案

改成#include "ruby/config.h",然后添加-I/home/user/.rvm/rubies/ruby-1.9.2-p290/include/ruby-1.9.1/x86_64-linux/ (或任何您所在的位置)到您的编译器选项。这告诉预处理器在查找 #includes 时将该目录添加到要搜索的目录列表中。

为了解决可移植性问题,您可以更改生成 makefile 的任何内容以将此路径作为选项/参数,或者您可以将它放在 makefile 顶部的变量中并要求人们更改它:

RUBY_LOCATION = /home/user/.rvm/rubies/ruby-1.9.2-p290/include/ruby-1.9.1/x86_64-linux/

CFLAGS = -Wall -I${RUBY_LOCATION}

关于在 C 中的#include 中转换绝对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8558057/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com