如何将安装目录传递到源文件?

时间:2019-09-01 11:43:12

标签: build cmake

我使用以下项目安装项目:

cmake --DCMAKE_INSTALL_PREFIX=/path/to/install /path/to/source
cmake --build . --target install

该项目取决于文件“ data.txt”,如下所示:

int main(){
    std::ifstream file;
    file.open("../data.txt"); //key line
    return 1;
}

为使程序正常工作,我将此文件复制到CMakeLists.txt命令的安装目录中。路径看起来像:

ls path/to/install
bin (directory)
data.txt

执行如下所示的程序可以正常工作:

cd /path/to/install/bin/
./program
---works---

问题是我想从任何目录运行程序。

我的操作方式: 我将/path/to/install/bin放入了bashrc中的PATH环境变量中。

但是“ ../data.txt”找不到了。并且运行失败。

有什么好方法可以使程序搜索data.txt的方式有所不同? 相对安装目录?还是二进制文件所在的地方? 但不是我启动它的目录。

或者人们通常如何管理这样的东西?

感谢和欢呼

0 个答案:

没有答案