使用 CMake 构建时 C++ 项目无法读取文件
C++ project can't read file when building with CMake
所以我写了一个 C++ 项目,它将文件读入字符串。
//func to read file into string
std::string readFile( const std::string& fileName )
{
std::ifstream ifs( fileName );
return std::string((std::istreambuf_iterator<char>(ifs)),
(std::istreambuf_iterator<char>()));
}
//func call in main
std::string text = readFile("test.txt");
这是我为此使用的代码。
我正在使用 CLion 编写我的代码。我将标准编译器更改为 clang++。当我直接在 CLion 中 运行 main.cpp 程序无法读取文件。没有错误代码,但是调试程序时提示参数fileName类型不完整
当我用
在终端中编译 main.cpp
clang++ -std=c++14 main.cpp -o histogram
然后 运行 它,它可以读取文件并且程序正常工作。
为什么它在终端中有效,但在 CLion 中无效?
如评论中所述,CMake 创建了一个子文件夹,输出文件位于其中。 test.txt 文件位于源文件夹中,因此超出范围。当我将工作目录更改为源文件夹时,程序运行了。
感谢您的快速帮助。
所以我写了一个 C++ 项目,它将文件读入字符串。
//func to read file into string
std::string readFile( const std::string& fileName )
{
std::ifstream ifs( fileName );
return std::string((std::istreambuf_iterator<char>(ifs)),
(std::istreambuf_iterator<char>()));
}
//func call in main
std::string text = readFile("test.txt");
这是我为此使用的代码。
我正在使用 CLion 编写我的代码。我将标准编译器更改为 clang++。当我直接在 CLion 中 运行 main.cpp 程序无法读取文件。没有错误代码,但是调试程序时提示参数fileName类型不完整
当我用
clang++ -std=c++14 main.cpp -o histogram
然后 运行 它,它可以读取文件并且程序正常工作。
为什么它在终端中有效,但在 CLion 中无效?
如评论中所述,CMake 创建了一个子文件夹,输出文件位于其中。 test.txt 文件位于源文件夹中,因此超出范围。当我将工作目录更改为源文件夹时,程序运行了。
感谢您的快速帮助。