make and std::logic_error
make and std::logic_error
我在使用make时遇到以下错误。因此,我在命令行中编译了相同的程序,以检查我的c++代码中是否存在问题,但它在命令行中运行得非常好。
g++ -o Cmain.exe Cmain.o -lmysqlclient -lboost_date_time -L ../lib -L/usr/local/lib -L/usr/lib/mysql
./Cmain.exe
terminate called after throwing an instance of 'std::logic_error'
what(): basic_string::_S_construct NULL not valid
make: *** [Cmain.exe] Aborted
make: *** Deleting file `Cmain.exe'
关于可能导致此错误的原因以及如何修复的任何建议。
编辑从编辑的问题中,现在很清楚CMain.exe不是正在执行,而是正在构建。
同样的故事也适用(见下文),但一旦有更多的新信息,我会发布更多相关的提示。等一下
<子>子>
我可以打赌80%程序调用std::getenv
getenv(...)
如果从它构造一个std::string,报告的异常是预期的。
在源代码中搜索getenv(…)并替换如下代码:
std::string s = getenv("SOMEVAR"); // WRONG!
,如
const char* raw = getenv("SOMEVAR");
std::string s = raw?raw:""; // RIGHT!
然后您可以使用s.empty()
查看变量是否有值(您不再可以查看它是否存在于环境中,因为std::string不能表示'null' -只能表示空字符串)。
p。背景:/八卦:
我敢打赌,环境是不同的,因为环境的差异经常导致make引擎(CMake, nmake, SCons等)的麻烦/混乱,特别是SCons默认情况下非常严格:它甚至不向环境添加$HOME变量,这会破坏例如ccache/ccontrol设置。
这是一个试图从NULL指针构建的std::string
。
这是make程序本身的问题。报告给程序的作者。
相关文章:
- "error: no matching function for call to"构造函数错误
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 使用 LuaBridge 将 LuaJIT 绑定到C++会导致"PANIC: unprotected error"
- OpenMP卸载说'fatal error: could not find accel/nvptx-none/mkoffload'
- C++错误:"error: int aaa::bbb is protected within this context"
- 尝试链接我的着色器时,我收到错误代码"error c5145 must write to gl_position"
- C++,在int数组中输入字符串或字符会输出0,而不是ascii或error
- 使用 cmake 的 LLVM 构建在 tsan_libdispatch_mac.cc 期间失败; "Error: conflicting types for ..."
- C++ "error: invalid use of void expression"
- struct.error:解压缩 C++ 结构时,解包需要 288 字节的缓冲区
- 如何修复"error: ‘_1’ was not declared in this scope"?
- WM_KILLFOCUS logic
- 从不同目录执行时"symbol lookup error:",否则从构建目录执行时按预期工作
- 对象声明中的模板"error: expected expression"
- 在C++中使用 Catch 测试框架编译错误"error: expected ';' at end of declaration list"
- OpenCV 3.4.1 error readNetFromTensorflow 无法在 cv::d nn::ReadProtoFromBinaryFile 中打开 .pb
- 已解决 - C++ 的崇高文本中的"fatal error: opencv: no such file or directory"
- 为什么我会"error: expected expression"?
- CMake Error at modules/videoio/cmake/detect_ffmpeg.cmake:16
- 如果两个静态库使用相同的另一个静态库,如何避免"LNK2005 Already Defined error"?