我得到断言失败“ file_name!= nullptr”,但仅在发布模式下

时间:2018-12-16 14:14:18

标签: c++ windows visual-c++ c++17

当我尝试在调试模式下运行代码时,一切正常,但是当我尝试在发布模式下运行代码时,出现错误“ file_name!= nullptr”(错误来自fopen)。我知道错误的含义,但我不知道为什么会收到错误以及如何解决该错误

#include <opencv2/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
#include <iostream>
#include <string>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
    String imageName("C:/Users/x/Desktop/pic.png"); // by default
    if (argc > 1)
    {
        imageName = argv[1];
    }

    Mat image;
    image = imread(imageName, IMREAD_COLOR); // Read the file

    if (image.empty())                      // Check for invalid input
    {
        cout << "Could not open or find the image" << std::endl;
        return -1;
    }

    namedWindow("Display window", WINDOW_AUTOSIZE); // Create a window for display.
    imshow("Display window", image);                // Show our image inside it.
    waitKey(0); // Wait for a keystroke in the window
    return 0;
}

错误消息:

>-----------Microsoft Visual C++ Runtime Library----------------
>
>
>Debug Assertion Assertion Faild!
>
>Programm: C:\Users\x\...\myProgramm.exe
>File: minkernel\crts\ucrt\src\appcrt\stdio\fopen.cpp
>
>Line: 30
>
>Expression: file_name != nullptr

1 个答案:

答案 0 :(得分:0)

您必须确保在调试和发布模式下使用正确的依赖项(.lib文件)。