如何获取c源目录而不是cmake编译目录

安全

我在src中有用于测试libxml的article.html,我希望使用相对路径'.article'读取它,但在clion中,cmake将当前目录更改为“ /home/roroco/.CLion12/system/cmake/generated/c9a7a4c5/c9a7a4c5 / Debug0”,我的问题是:在get_current_source_dir()吗?

更新这里是我的ex.c:

#include <unistd.h>
#include "stdio.h"

int main(int argc, char **argv) {
    puts(get_current_dir_name());
//    /home/roroco/.CLion12/system/cmake/generated/b321980/b321980/Debug
    FILE *f = fopen('article.html', "r");
    fseek(f, 0, SEEK_END);
//    Signal: SIGSEGV (Segmentation fault)
    return (0);
};

这是我的文件树

- ex.c
- CMakeLists.txt
- article.html

这是我的CMakeLists.txt

而要解决这个正确的方法是把article.html/home/roroco/.CLion12/system/cmake/generated/b321980/b321980/Debug,这里是你可以做什么:

在CMakeLists.txt中:

add_definitions("-DSOURCE_PATH=\"${CMAKE_SOURCE_PATH}\"")

在ex.c中:

fopen(SOURCE_PATH "article.html", "r");

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

cmake在源目录中构建,而不是PWD

如何修复 CMake 错误:源目录

如何获取源目录中包含的文件?

CMAKE指定不同的源目录

如何告诉CMake链接源目录中的静态库?

如何从资源目录中的zip文件中获取BufferredReader?

如何从脚本本身中获取Bash脚本的源目录?

如何从脚本本身中获取Bash脚本的源目录?

如何以编程方式获取资源目录路径

cmake 源目录不存在

TFS 2013 Git模板-获取源目录

将CMake连接到FreeBASIC编译器时出错。CMake错误:源目录似乎不包含CMakeLists.txt

如何使用cmake强制UIC在源目录中生成ui_mainwindow.h

如何为Maven添加额外的源目录以进行编译并将其包含在构建jar中?

如何在Play Framework 2.3.1中更改可编译的静态(CoffeeScript,LESS)源目录?

如何让IntelliJ识别Gradle生成的源目录?

如何从资源目录读取多个文件

如何在Mac上从源目录键入

如何告诉Maven包含jar依赖关系,而不是Eclipse中的子项目源目录?

简单测试输出-CMake错误:源目录不存在

CMake将构建文件放在源目录中

Android gradle:如何在 build.gradle 脚本中获取合并的资源目录?

Ambari资源目录?

特定于区域(不是区域设置)的资源目录

rsync复制顶级源目录而不是其内容

如何使用CMAKE更改hlsl文件的编译目录?

获取资源目录中的文件名

使用CMake将文件从源目录复制到二进制目录

Maven2编译器自定义执行源目录和目标目录