C++ LD_DEBUG

LD_DEBUG是Glibc加载器用于调试的环境变量,它允许开发者查看库的加载过程、搜索路径、重定位处理、符号表等信息。通过设置如`LD_DEBUG=libs`、`LD_DEBUG=bindings`等选项,可以获取不同级别的调试信息。将输出重定向到文件可使用`LD_DEBUG_OUTPUT`。此特性对于诊断和优化程序的动态链接问题非常有用。

LD_DEBUG 是 glibc 中的 loader 为了方便自身调试而设置的一个环境变量。通过设置这个环境变量,可以方便的看到 loader 的加载过程。 

#LD_DEBUG=help ls
Valid options for the LD_DEBUG environment variable are:

  libs        display library search paths
  reloc       display relocation processing
  files       display progress for input file
  symbols     display symbol table processing
  bindings    display information about symbol binding
  versions    display version dependencies
  all         all previous options combined
  statistics  display relocation statistics
  unused      determined unused DSOs
  help        display this help message and exit

To direct the debugging output into a file instead of standard output
a filename can be specified using the LD_DEBUG_OUTPUT environment variable.

 

可以把LD_DEBUG设成以下值:

export LD_DEBUG=files     # 显示库的依赖性和加载的顺序

export LD_DEBUG=bindings  # 符号绑定

export LD_DEBUG=libs   # 显示加载器查找库时使用的路径的顺序

export LD_DEBUG=versions  # 版本依赖性

export LD_DEBUG=help  # LD_DEBUG的帮助信息

 

使用

LD_DEBUG=libs  ./test  

LD_DEBUG=libs  ./test  > l.log 2>&1

输出log保存可以使用LD_DEBUG=all LD_DEBUG_OUTPUT=log  ./main  会生成一个output指定文件名加进程号结尾的文件

 

void SdNavigationHighway::SelectGuideLanesWithLd( const std::vector<uint64_t> &bev_ego_root_section_x0, const std::map<double, RecommendLane> &ld_recommend_lane, BevMapInfoPtr &GlobalBevMapOutPut, std::vector<std::pair<uint64_t, std::pair<int, int>>> &guide_lane_result, std::vector<uint64_t> &sd_guide_lane_ids) { std::set<uint64_t> bev_guide_lanes_with_ld; guide_lane_result.clear(); sd_guide_lane_ids.clear(); if (bev_ego_root_section_x0.empty() || ld_recommend_lane.empty()) { SD_FINE_MATCH_LOG << "bev or ld is empty, return: " << bev_ego_root_section_x0.empty() << ", " << ld_recommend_lane.empty(); return; } for (auto &bev_ego_id : bev_ego_root_section_x0) { SD_FINE_MATCH_LOG << "bev_ego_id: " << bev_ego_id; } RecommendLane ld_target_lane; bool is_found = false; for (auto it = ld_recommend_lane.begin(); it != ld_recommend_lane.end(); ++it) { if (it->first < 0.0) { auto next_it = std::next(it); if (next_it != ld_recommend_lane.end() && next_it->first > 0.0) { ld_target_lane = it->second; is_found = true; break; } if (next_it == ld_recommend_lane.end()) { ld_target_lane = it->second; is_found = true; break; } } } if (!is_found) { return; } constexpr double kLdGuideRemmRange = 200.0; int ld_ego_lane_num = ld_target_lane.lane_num; int bev_ego_lane_num = bev_ego_root_section_x0.size(); int lane_num_diff = std::abs(ld_ego_lane_num - bev_ego_lane_num); bool ld_match_from_left = true; // 1 left, 0 right double nearest_distance = std::numeric_limits<double>::max(); // 自车脚下bev车道和地图车道数对不上 if (bev_ego_lane_num != ld_ego_lane_num) { auto it_target_lane = std::find_if( ld_recommend_lane.begin(), ld_recommend_lane.end(), [&](const auto &pair) { return pair.second == ld_target_lane; }); if (it_target_lane != ld_recommend_lane.end()) { for (auto it = it_target_lane; it != ld_recommend_lane.end(); ++it) { if ((it->second.lane_num == bev_ego_lane_num) && (it->first < kLdGuideRemmRange)) { // case1:自车脚下未匹配,合理范围内匹配上 SD_FINE_MATCH_LOG << "Case1: bev and ld lane num match at a distance"; ld_target_lane = it->second; ld_match_from_left = true; break; } // case2:合理范围未匹配上,且地图和感知车道数相差较大 if ((std::next(it) == ld_recommend_lane.end()) && (lane_num_diff > 1)) { int ego_bev_id, ego_bev_index = -1; for (auto &bev_root_id : bev_ego_root_section_x0) { auto lane_r = INTERNAL_PARAMS.raw_bev_data.GetLaneInfoById(bev_root_id); if (!lane_r) { continue; } if (lane_r->position == (int)BevLanePosition::LANE_LOC_EGO) { ego_bev_id = bev_root_id; break; } else { int nearest_index = lane_r->indexed_geos.FindNearestPoint(0.0, 0.0); if (nearest_index >= 0 && nearest_index < static_cast<int>(lane_r->geos->size())) { double lane_distance = fabs(0.0 - lane_r->geos->at(nearest_index).y()); SD_FINE_MATCH_LOG << "lane_distance: " << lane_distance; if (lane_distance < nearest_distance) { nearest_distance = lane_distance; ego_bev_id = bev_root_id; } } } } SD_FINE_MATCH_LOG << "ego_bev_id: " << ego_bev_id; auto it = std::find(bev_ego_root_section_x0.begin(), bev_ego_root_section_x0.end(), ego_bev_id); if (it != bev_ego_root_section_x0.end()) { ego_bev_index = std::distance(bev_ego_root_section_x0.begin(), it); if (ego_bev_index < static_cast<double>(bev_ego_lane_num) / 2.0f) { ld_match_from_left = true; } else { ld_match_from_left = false; } } else { ld_match_from_left = true; } SD_FINE_MATCH_LOG << "Case2: bev and ld lane num not match"; } } } } SD_FINE_MATCH_LOG << "section_id: " << ld_target_lane.section_id; std::vector<int> ego_lane_index_left, ego_lane_index_right; ego_lane_index_left.reserve(bev_ego_root_section_x0.size()); // ego_lane_index_right.reserve(bev_ego_root_section_x0.size()); for (int i = 1; i <= bev_ego_root_section_x0.size(); ++i) { ego_lane_index_left.emplace_back(i); // ego_lane_index_right.emplace_back(bev_ego_root_section_x0.size() - i + // 1); } // for (auto &lane_left : ego_lane_index_left) { // SD_FINE_MATCH_LOG << "lane_left: " << int(lane_left); // } // for (auto &lane_right : ego_lane_index_right) { // SD_FINE_MATCH_LOG << "lane_right: " << int(lane_right); // } for (auto &ld_target_index : ld_target_lane.lane_seqs) { SD_FINE_MATCH_LOG << "ld_target_index: " << ld_target_index; if (ld_match_from_left) { auto find_bev = std::find(ego_lane_index_left.begin(), ego_lane_index_left.end(), ld_target_index); if (find_bev != ego_lane_index_left.end()) { auto &bev_road_id = bev_ego_root_section_x0.at( std::distance(ego_lane_index_left.begin(), find_bev)); SD_FINE_MATCH_LOG << "from left bev_road_id: " << bev_road_id; bev_guide_lanes_with_ld.insert(bev_road_id); } else { auto find_closest = std::min_element( ego_lane_index_left.begin(), ego_lane_index_left.end(), [&ld_target_index](const int &a, const int &b) { return std::abs(a - static_cast<int>(ld_target_index)) < std::abs(b - static_cast<int>(ld_target_index)); }); if (find_closest != ego_lane_index_left.end()) { auto &bev_road_id = bev_ego_root_section_x0.at( std::distance(ego_lane_index_left.begin(), find_closest)); SD_FINE_MATCH_LOG << "from left closest bev_road_id: " << bev_road_id; bev_guide_lanes_with_ld.insert(bev_road_id); } } } else { auto bev_ego_root_section_x0_right = std::vector<uint64_t>( bev_ego_root_section_x0.end() - std::min(ld_target_lane.lane_num, bev_ego_root_section_x0.size()), bev_ego_root_section_x0.end()); for (int i = 1; i <= bev_ego_root_section_x0_right.size(); ++i) { ego_lane_index_right.emplace_back(i); SD_FINE_MATCH_LOG << "bev_ego_id_right: " << bev_ego_root_section_x0_right.at(i - 1); } auto find_bev = std::find(ego_lane_index_right.begin(), ego_lane_index_right.end(), ld_target_index); if (find_bev != ego_lane_index_right.end()) { auto &bev_road_id = bev_ego_root_section_x0_right.at( std::distance(ego_lane_index_right.begin(), find_bev)); SD_FINE_MATCH_LOG << "from right bev_road_id: " << bev_road_id; bev_guide_lanes_with_ld.insert(bev_road_id); } else { auto find_closest = std::min_element( ego_lane_index_right.begin(), ego_lane_index_right.end(), [&ld_target_index](const int &a, const int &b) { return std::abs(a - static_cast<int>(ld_target_index)) < std::abs(b - static_cast<int>(ld_target_index)); }); if (find_closest != ego_lane_index_right.end()) { auto &bev_road_id = bev_ego_root_section_x0_right.at( std::distance(ego_lane_index_right.begin(), find_closest)); SD_FINE_MATCH_LOG << "from right closest bev_road_id: " << bev_road_id; bev_guide_lanes_with_ld.insert(bev_road_id); } } } } std::unordered_map<uint64_t, BevLaneInfo *> lane_map; lane_map.clear(); for (auto &lane : GlobalBevMapOutPut->lane_infos) { lane_map[lane.id] = &lane; } std::vector<uint64_t> match_guide_lanes; for (auto &ego_start_id : bev_guide_lanes_with_ld) { match_guide_lanes.clear(); if (lane_map.find(ego_start_id) == lane_map.end()) { return; } std::queue<uint64_t> q; std::unordered_set<uint64_t> visited; q.push(ego_start_id); visited.insert(ego_start_id); while (!q.empty()) { uint64_t cur = q.front(); q.pop(); const BevLaneInfo *info = lane_map.at(cur); if (info->next_lane_ids.empty()) { match_guide_lanes.push_back(cur); } else { for (uint64_t nxt : info->next_lane_ids) { if (lane_map.find(nxt) == lane_map.end()) continue; if (visited.insert(nxt).second) { q.push(nxt); } } } } } auto &navi_debug_infos = INTERNAL_PARAMS.navigation_info_data.navi_debug_infos(); sd_guide_lane_ids = match_guide_lanes; for (auto &laneid_tmp : sd_guide_lane_ids) { guide_lane_result.push_back({laneid_tmp, {-1, 0}}); } std::ostringstream os1; for (auto guide_laneid_tmp : sd_guide_lane_ids) { os1 << guide_laneid_tmp << ","; } SD_FINE_MATCH_LOG << "[SelectGuideLanesWithLd] : " << os1.str(); navi_debug_infos.guide_laneids_refer = sd_guide_lane_ids; } 详细解释下代码,加上注释
最新发布
10-29
====================[ 构建 | C++OpenCV_rendering-to-QML | Debug ]================= "D:\CLion 2025.1.3\bin\cmake\win\x64\bin\cmake.exe" --build "E:\CLionc++lianxi\C++OpenCV_rendering to QML\cmake-build-debug" --target C++OpenCV_rendering-to-QML -j 4 [1/4] Automatic MOC for target C++OpenCV_rendering-to-QML [2/3] Building CXX object CMakeFiles/C++OpenCV_rendering-to-QML.dir/main.cpp.obj [3/3] Linking CXX executable C++OpenCV_rendering-to-QML.exe FAILED: C++OpenCV_rendering-to-QML.exe C:\Windows\system32\cmd.exe /C "cd . && "D:\CLion 2025.1.3\bin\mingw\bin\g++.exe" -g -mwindows CMakeFiles/C++OpenCV_rendering-to-QML.dir/C++OpenCV_rendering-to-QML_autogen/mocs_compilation.cpp.obj CMakeFiles/C++OpenCV_rendering-to-QML.dir/main.cpp.obj CMakeFiles/C++OpenCV_rendering-to-QML.dir/C++OpenCV_rendering-to-QML_autogen/DHU3A7JD2B/qrc_source.cpp.obj -o C++OpenCV_rendering-to-QML.exe -Wl,--out-implib,libC++OpenCV_rendering-to-QML.dll.a -Wl,--major-image-version,0,--minor-image-version,0 D:/Qt/6.8.3/msvc2022_64/lib/Qt6QuickControls2d.lib "E:/CLionc++lianxi/C++OpenCV_rendering to QML/src/qml_opencv/lib/opencv/msvc/lib/opencv_world480d.lib" "E:/CLionc++lianxi/C++OpenCV_rendering to QML/src/qml_opencv/lib/opencv/msvc/lib/opencv_world480d.lib" "E:/CLionc++lianxi/C++OpenCV_rendering to QML/src/qml_opencv/lib/opencv/msvc/lib/opencv_world480d.lib" "E:/CLionc++lianxi/C++OpenCV_rendering to QML/src/qml_opencv/lib/opencv/msvc/lib/opencv_world480d.lib" "E:/CLionc++lianxi/C++OpenCV_rendering to QML/src/qml_opencv/lib/opencv/msvc/lib/opencv_world480d.lib" "E:/CLionc++lianxi/C++OpenCV_rendering to QML/src/qml_opencv/lib/opencv/msvc/lib/opencv_world480d.lib" "E:/CLionc++lianxi/C++OpenCV_rendering to QML/src/qml_opencv/lib/opencv/msvc/lib/opencv_world480d.lib" "E:/CLionc++lianxi/C++OpenCV_rendering to QML/src/qml_opencv/lib/opencv/msvc/lib/opencv_world480d.lib" "E:/CLionc++lianxi/C++OpenCV_rendering to QML/src/qml_opencv/lib/opencv/msvc/lib/opencv_world480d.lib" "E:/CLionc++lianxi/C++OpenCV_rendering to QML/src/qml_opencv/lib/opencv/msvc/lib/opencv_world480d.lib" "E:/CLionc++lianxi/C++OpenCV_rendering to QML/src/qml_opencv/lib/opencv/msvc/lib/opencv_world480d.lib" "E:/CLionc++lianxi/C++OpenCV_rendering to QML/src/qml_opencv/lib/opencv/msvc/lib/opencv_world480d.lib" "E:/CLionc++lianxi/C++OpenCV_rendering to QML/src/qml_opencv/lib/opencv/msvc/lib/opencv_world480d.lib" "E:/CLionc++lianxi/C++OpenCV_rendering to QML/src/qml_opencv/lib/opencv/msvc/lib/opencv_world480d.lib" "E:/CLionc++lianxi/C++OpenCV_rendering to QML/src/qml_opencv/lib/opencv/msvc/lib/opencv_world480d.lib" "E:/CLionc++lianxi/C++OpenCV_rendering to QML/src/qml_opencv/lib/opencv/msvc/lib/opencv_world480d.lib" D:/Qt/6.8.3/msvc2022_64/lib/Qt6Quickd.lib D:/Qt/6.8.3/msvc2022_64/lib/Qt6QmlMetad.lib D:/Qt/6.8.3/msvc2022_64/lib/Qt6QmlWorkerScriptd.lib D:/Qt/6.8.3/msvc2022_64/lib/Qt6OpenGLd.lib -luser32 D:/Qt/6.8.3/msvc2022_64/lib/Qt6Guid.lib -ld3d11 -ldxgi -ldxguid -ld3d12 D:/Qt/6.8.3/msvc2022_64/lib/Qt6QmlModelsd.lib D:/Qt/6.8.3/msvc2022_64/lib/Qt6Qmld.lib D:/Qt/6.8.3/msvc2022_64/lib/Qt6Networkd.lib D:/Qt/6.8.3/msvc2022_64/lib/Qt6Cored.lib -lmpr -luserenv D:/Qt/6.8.3/msvc2022_64/lib/Qt6EntryPointd.lib -lws2_32 -lshell32 -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 && C:\Windows\system32\cmd.exe /C "cd /D "E:\CLionc++lianxi\C++OpenCV_rendering to QML\cmake-build-debug" && D:\Qt\6.8.3\msvc2022_64\bin\windeployqt.exe "E:/CLionc++lianxi/C++OpenCV_rendering to QML/cmake-build-debug/C++OpenCV_rendering-to-QML.exe" --qmldir "E:/CLionc++lianxi/C++OpenCV_rendering to QML/UI_resource/qml""" D:\CLion 2025.1.3\bin\mingw\bin/ld.exe: CMakeFiles/C++OpenCV_rendering-to-QML.dir/main.cpp.obj: in function `indexOfOwnClassInfo': D:/Qt/6.8.3/msvc2022_64/include/QtQml/qqmlprivate.h:809: undefined reference to `__imp__ZNK11QMetaObject15classInfoOffsetEv' D:\CLion 2025.1.3\bin\mingw\bin/ld.exe: D:/Qt/6.8.3/msvc2022_64/include/QtQml/qqmlprivate.h:811: undefined reference to `__imp__ZNK11QMetaObject14classInfoCountEv' D:\CLion 2025.1.3\bin\mingw\bin/ld.exe: D:/Qt/6.8.3/msvc2022_64/include/QtQml/qqmlprivate.h:814: undefined reference to `__imp__ZNK11QMetaObject9classInfoEi' D:\CLion 2025.1.3\bin\mingw\bin/ld.exe: D:/Qt/6.8.3/msvc2022_64/include/QtQml/qqmlprivate.h:814: undefined reference to `__imp__ZNK14QMetaClassInfo4nameEv' D:\CLion 2025.1.3\bin\mingw\bin/ld.exe: D:/Qt/6.8.3/msvc2022_64/include/QtQml/qqmlprivate.h:814: undefined reference to `__imp__Z7qstrcmpPKcS0_' D:\CLion 2025.1.3\bin\mingw\bin/ld.exe: CMakeFiles/C++OpenCV_rendering-to-QML.dir/main.cpp.obj: in function `main': E:/CLionc++lianxi/C++OpenCV_rendering to QML/main.cpp:12: undefined reference to `__imp__ZN12QQuickWindow14setGraphicsApiEN20QSGRendererInterface11GraphicsApiE' D:\CLion 2025.1.3\bin\mingw\bin/ld.exe: E:/CLionc++lianxi/C++OpenCV_rendering to QML/main.cpp:19: undefined reference to `cv::VideoCapture::VideoCapture()' D:\CLion 2025.1.3\bin\mingw\bin/ld.exe: E:/CLionc++lianxi/C++OpenCV_rendering to QML/main.cpp:24: undefined reference to `__imp__ZN15QGuiApplicationC1ERiPPci' D:\CLion 2025.1.3\bin\mingw\bin/ld.exe: E:/CLionc++lianxi/C++OpenCV_rendering to QML/main.cpp:37: undefined reference to `__imp__ZN10QQmlEngineC1EP7QObject' D:\CLion 2025.1.3\bin\mingw\bin/ld.exe: E:/CLionc++lianxi/C++OpenCV_rendering to QML/main.cpp:41: undefined reference to `__imp__ZN13QQmlComponentC1EP10QQmlEngineP7QObject' D:\CLion 2025.1.3\bin\mingw\bin/ld.exe: E:/CLionc++lianxi/C++OpenCV_rendering to QML/main.cpp:55: undefined reference to `__imp__ZN4QUrlC1ERK7QStringNS_11ParsingModeE' D:\CLion 2025.1.3\bin\mingw\bin/ld.exe: E:/CLionc++lianxi/C++OpenCV_rendering to QML/main.cpp:55: undefined reference to `__imp__ZN13QQmlComponent7loadUrlERK4QUrl' D:\CLion 2025.1.3\bin\mingw\bin/ld.exe: E:/CLionc++lianxi/C++OpenCV_rendering to QML/main.cpp:55: undefined reference to `__imp__ZN4QUrlD1Ev' D:\CLion 2025.1.3\bin\mingw\bin/ld.exe: E:/CLionc++lianxi/C++OpenCV_rendering to QML/main.cpp:58: undefined reference to `__imp__ZNK13QQmlComponent7isErrorEv' D:\CLion 2025.1.3\bin\mingw\bin/ld.exe: E:/CLionc++lianxi/C++OpenCV_rendering to QML/main.cpp:60: undefined reference to `__imp__ZNK14QMessageLogger5debugEv' D:\CLion 2025.1.3\bin\mingw\bin/ld.exe: E:/CLionc++lianxi/C++OpenCV_rendering to QML/main.cpp:60: undefined reference to `__imp__ZNK13QQmlComponent11errorStringEv' D:\CLion 2025.1.3\bin\mingw\bin/ld.exe: E:/CLionc++lianxi/C++OpenCV_rendering to QML/main.cpp:60: undefined reference to `__imp__ZN6QDebugD1Ev' D:\CLion 2025.1.3\bin\mingw\bin/ld.exe: E:/CLionc++lianxi/C++OpenCV_rendering to QML/main.cpp:64: undefined reference to `__imp__ZN13QQmlComponent6createEP11QQmlContext' D:\CLion 2025.1.3\bin\mingw\bin/ld.exe: E:/CLionc++lianxi/C++OpenCV_rendering to QML/main.cpp:67: undefined reference to `__imp__ZNK13QQmlComponent7isErrorEv' D:\CLion 2025.1.3\bin\mingw\bin/ld.exe: E:/CLionc++lianxi/C++OpenCV_rendering to QML/main.cpp:69: undefined reference to `__imp__ZNK14QMessageLogger5debugEv' D:\CLion 2025.1.3\bin\mingw\bin/ld.exe: E:/CLionc++lianxi/C++OpenCV_rendering to QML/main.cpp:69: undefined reference to `__imp__ZNK13QQmlComponent11errorStringEv' D:\CLion 2025.1.3\bin\mingw\bin/ld.exe: E:/CLionc++lianxi/C++OpenCV_rendering to QML/main.cpp:69: undefined reference to `__imp__ZN6QDebugD1Ev' D:\CLion 2025.1.3\bin\mingw\bin/ld.exe: E:/CLionc++lianxi/C++OpenCV_rendering to QML/main.cpp:71: undefined reference to `__imp__ZN15QGuiApplication4execEv' D:\CLion 2025.1.3\bin\mingw\bin/ld.exe: E:/CLionc++lianxi/C++OpenCV_rendering to QML/main.cpp:72: undefined reference to `__imp__ZN13QQmlComponentD1Ev' D:\CLion 2025.1.3\bin\mingw\bin/ld.exe: E:/CLionc++lianxi/C++OpenCV_rendering to QML/main.cpp:72: undefined reference to `__imp__ZN10QQmlEngineD1Ev' D:\CLion 2025.1.3\bin\mingw\bin/ld.exe: E:/CLionc++lianxi/C++OpenCV_rendering to QML/main.cpp:72: undefined reference to `__imp__ZN15QGuiApplicationD1Ev' D:\CLion 2025.1.3\bin\mingw\bin/ld.exe: E:/CLionc++lianxi/C++OpenCV_rendering to QML/main.cpp:72: undefined reference to `cv::VideoCapture::~VideoCapture()' D:\CLion 2025.1.3\bin\mingw\bin/ld.exe: E:/CLionc++lianxi/C++OpenCV_rendering to QML/main.cpp:55: undefined reference to `__imp__ZN4QUrlD1Ev' D:\CLion 2025.1.3\bin\mingw\bin/ld.exe: E:/CLionc++lianxi/C++OpenCV_rendering to QML/main.cpp:60: undefined reference to `__imp__ZN6QDebugD1Ev' D:\CLion 2025.1.3\bin\mingw\bin/ld.exe: E:/CLionc++lianxi/C++OpenCV_rendering to QML/main.cpp:69: undefined reference to `__imp__ZN6QDebugD1Ev' D:\CLion 2025.1.3\bin\mingw\bin/ld.exe: E:/CLionc++lianxi/C++OpenCV_rendering to QML/main.cpp:72: undefined reference to `__imp__ZN13QQmlComponentD1Ev' D:\CLion 2025.1.3\bin\mingw\bin/ld.exe: E:/CLionc++lianxi/C++OpenCV_rendering to QML/main.cpp:72: undefined reference to `__imp__ZN10QQmlEngineD1Ev' D:\CLion 2025.1.3\bin\mingw\bin/ld.exe: E:/CLionc++lianxi/C++OpenCV_rendering to QML/main.cpp:72: undefined reference to `__imp__ZN15QGuiApplicationD1Ev' D:\CLion 2025.1.3\bin\mingw\bin/ld.exe: E:/CLionc++lianxi/C++OpenCV_rendering to QML/main.cpp:72: undefined reference to `cv::VideoCapture::~VideoCapture()' D:\CLion 2025.1.3\bin\mingw\bin/ld.exe: CMakeFiles/C++OpenCV_rendering-to-QML.dir/main.cpp.obj: in function `QString::QString(char const*)': D:/Qt/6.8.3/msvc2022_64/include/QtCore/qstring.h:847: undefined reference to `__imp__ZN7QString8fromUtf8E14QByteArrayView' D:\CLion 2025.1.3\bin\mingw\bin/ld.exe: CMakeFiles/C++OpenCV_rendering-to-QML.dir/main.cpp.obj: in function `QString::data() const': D:/Qt/6.8.3/msvc2022_64/include/QtCore/qstring.h:1242: undefined reference to `__imp__ZN7QString6_emptyE' D:\CLion 2025.1.3\bin\mingw\bin/ld.exe: CMakeFiles/C++OpenCV_rendering-to-QML.dir/main.cpp.obj: in function `QDebug::maybeSpace()': D:/Qt/6.8.3/msvc2022_64/include/QtCore/qdebug.h:93: undefined reference to `__imp__ZN11QTextStreamlsEc' D:\CLion 2025.1.3\bin\mingw\bin/ld.exe: CMakeFiles/C++OpenCV_rendering-to-QML.dir/main.cpp.obj: in function `QDebug::operator<<(QString const&)': D:/Qt/6.8.3/msvc2022_64/include/QtCore/qdebug.h:127: undefined reference to `__imp__ZN6QDebug9putStringEPK5QChary' D:\CLion 2025.1.3\bin\mingw\bin/ld.exe: CMakeFiles/C++OpenCV_rendering-to-QML.dir/main.cpp.obj: in function `QByteArrayView::QByteArrayView<char, true>(char const*, long long)': D:/Qt/6.8.3/msvc2022_64/include/QtCore/qbytearrayview.h:147: undefined reference to `__imp__Z9qt_assertPKcS0_i' D:\CLion 2025.1.3\bin\mingw\bin/ld.exe: D:/Qt/6.8.3/msvc2022_64/include/QtCore/qbytearrayview.h:147: undefined reference to `__imp__Z9qt_assertPKcS0_i' D:\CLion 2025.1.3\bin\mingw\bin/ld.exe: CMakeFiles/C++OpenCV_rendering-to-QML.dir/main.cpp.obj: in function `QtPrivate::QPodArrayOps<char16_t>::destroyAll()': D:/Qt/6.8.3/msvc2022_64/include/QtCore/qarraydataops.h:98: undefined reference to `__imp__Z9qt_assertPKcS0_i' D:\CLion 2025.1.3\bin\mingw\bin/ld.exe: D:/Qt/6.8.3/msvc2022_64/include/QtCore/qarraydataops.h:99: undefined reference to `__imp__Z9qt_assertPKcS0_i' D:\CLion 2025.1.3\bin\mingw\bin/ld.exe: CMakeFiles/C++OpenCV_rendering-to-QML.dir/C++OpenCV_rendering-to-QML_autogen/DHU3A7JD2B/qrc_source.cpp.obj: in function `qInitResources_source()': E:/CLionc++lianxi/C++OpenCV_rendering to QML/cmake-build-debug/C++OpenCV_rendering-to-QML_autogen/DHU3A7JD2B/qrc_source.cpp:88: undefined reference to `qRegisterResourceData(int, unsigned char const*, unsigned char const*, unsigned char const*)' D:\CLion 2025.1.3\bin\mingw\bin/ld.exe: CMakeFiles/C++OpenCV_rendering-to-QML.dir/C++OpenCV_rendering-to-QML_autogen/DHU3A7JD2B/qrc_source.cpp.obj: in function `qCleanupResources_source()': E:/CLionc++lianxi/C++OpenCV_rendering to QML/cmake-build-debug/C++OpenCV_rendering-to-QML_autogen/DHU3A7JD2B/qrc_source.cpp:97: undefined reference to `qUnregisterResourceData(int, unsigned char const*, unsigned char const*, unsigned char const*)' collect2.exe: error: ld returned 1 exit status ninja: build stopped: subcommand failed.
07-26
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值