__thiscall fstream::fstream(int) 的原因

本文探讨了在VC++环境中使用fstream类时遇到的问题及解决方案,包括命名空间使用、文件读写操作及编译错误处理。

我在下面程序尝试的时候,没有错误,但是一移到我现在做的工程中就出现这种错误

#include     <stdlib.h>
#include  <io.h>
#include   <afx.h>
#include   <fstream>  
#include  "iostream.h"
#include <MALLOC.H>

using   namespace   std; 
void main()
{
 //读文件
 fstream filewrite("c:\\text.txt",ios_base::out);
 char buf[] = "20";
 filewrite.write(buf,sizeof(buf));
 filewrite.close();

//读取文件内容并输出
 
 int len;
 char* buf1;
 //fstream sfs;
 //sfs.open(TEST_FILE);
 fstream sfs("c:\\text.txt");
 //定位到文件末尾
 sfs.seekg (0, ios_base::end);
 //返回地址,也就相当于获得文件的长度
 len = sfs.tellg();
 //获取完毕之后,将文件指针提到前面
 sfs.seekg (0, ios_base::beg);
 buf1 = new char[len];
 sfs.read(buf1, len);
 cout << buf1 << endl;


 int cishu;
 int *pass;
 FILE *fp;
 fp=fopen("c:\\text.txt","r");  
  if   (fp==NULL)  
  {  
  printf("文件无法打开!\n");  
  return;  
  }  
  else  
  while(!feof(fp))//如果没有读到数据  
  {  
  pass=(int   *)malloc(sizeof(int));  
  fscanf(fp,"%d\n",pass);  
  cishu=*pass;  
  cout<<cishu<<endl;
  free(pass);

  } 

 cishu--;
 fstream filewrite2("c:\\text.txt");
 filewrite2<<cishu<<endl;

 delete []buf1;
 sfs.close();
}

同一个cpp文件里面,ifstream   和ofstream都可以正常使用 我把fstream换成ifstream就不出错,没解决掉,最后没办法都换成ifstream 和ofstream了

还有例如fstream filewrite("c:\\text.txt",ios_base::out);  ios_base::out是需要
using   namespace   std; 的  但是我加入using   namespace   std;后无法找到std命名空间,

将#include <iostream.h>改为#include <iostream>即可,因为#include <iostream.h>是旧的编译方式。

但是修改后 会出现 error C2872: 'ofstream' : ambiguous symbol

vc++编译器真是喜欢开玩笑啊!!!无奈取消使用命名空间ios_base::out等全部删除掉

#include <iostream> #include <cmath> #include <chrono> #include <thread> #include <vector> #include <gmpxx.h> #include <fstream> #include <sstream> #include <iomanip> #include <mutex> #include <atomic> #include <sys/sysinfo.h> #include <sys/resource.h> #include <fstream> #include <unistd.h> #include <nvml.h> // NVIDIA GPU监控 std::mutex output_mutex; std::atomic<bool> stop_monitor(false); mpf_class pi_value(0, 0); // 高精度π值 std::atomic<int> iteration_count(0); // 获取CPU使用率 double get_cpu_usage() { static uint64_t last_total = 0, last_idle = 0; std::ifstream stat_file("/proc/stat"); std::string line; std::getline(stat_file, line); std::istringstream iss(line); std::string cpu; uint64_t user, nice, system, idle, iowait, irq, softirq, steal; iss >> cpu >> user >> nice >> system >> idle >> iowait >> irq >> softirq >> steal; uint64_t total = user + nice + system + irq + softirq + steal; uint64_t idle_time = idle + iowait; double usage = 0.0; if (last_total != 0) { uint64_t total_diff = total - last_total; uint64_t idle_diff = idle_time - last_idle; usage = 100.0 * (1.0 - static_cast<double>(idle_diff) / total_diff); } last_total = total; last_idle = idle_time; return usage; } // 获取内存使用率 double get_memory_usage() { struct sysinfo mem_info; sysinfo(&mem_info); double total = mem_info.totalram; double free = mem_info.freeram; return 100.0 * (1.0 - free / total); } // 获取GPU使用率 (NVIDIA) double get_gpu_usage() { nvmlReturn_t result; nvmlDevice_t device; unsigned int utilization; result = nvmlInit(); if (result != NVML_SUCCESS) return -1.0; result = nvmlDeviceGetHandleByIndex(0, &device); if (result != NVML_SUCCESS) { nvmlShutdown(); return -1.0; } result = nvmlDeviceGetUtilizationRates(device, &utilization); if (result != NVML_SUCCESS) { nvmlShutdown(); return -1.0; } nvmlShutdown(); return static_cast<double>(utilization.gpu); } // 资源监控线程函数 void monitor_resources() { while (!stop_monitor) { double cpu = get_cpu_usage(); double mem = get_memory_usage(); double gpu = get_gpu_usage(); { std::lock_guard<std::mutex> lock(output_mutex); std::cout << "\033[2K"; // 清除当前行 std::cout << "\r[资源监控] CPU: " << std::fixed << std::setprecision(1) << cpu << "% | " << "内存: " << mem << "% | " << "GPU: " << (gpu >= 0 ? std::to_string(static_cast<int>(gpu)) + "%" : "N/A"); std::cout.flush(); } std::this_thread::sleep_for(std::chrono::seconds(1)); } } // Chudnovsky算法计算π mpf_class chudnovsky_pi(unsigned int precision, unsigned int iterations) { mpf_set_default_prec(precision); mpf_class pi(0, precision); mpf_class sum(0, precision); mpf_class k1(13591409, precision); mpf_class k2(545140134, precision); mpf_class k3(-262537412640768000, precision); mpf_class k4(426880, precision); mpf_class k5(10005, precision); mpf_class sqrt_c(0, precision); k5 = sqrt(k5); sqrt_c = k4 * k5; mpz_class a(1); mpz_class b(1); mpz_class a_prime(1); mpz_class b_prime(1); for (unsigned int k = 0; k < iterations; k++) { mpf_class numerator(0, precision); mpf_class denominator(0, precision); if (k == 0) { a = 1; b = 1; } else { // 使用二进制分裂法优化计算 a_prime = (6*k-5)*(2*k-1)*(6*k-1); b_prime = k*k*k * k3 / 24; a *= a_prime; b *= b_prime; } numerator = k1 + k2 * k; denominator = a * b; sum += numerator / denominator; iteration_count = k + 1; // 每100次迭代显示进度 if (k % 100 == 0) { pi = sqrt_c / sum; std::lock_guard<std::mutex> lock(output_mutex); std::cout << "\n[计算进度] 迭代: " << k << "/" << iterations << " | 当前π值: " << std::setprecision(15) << pi << std::endl; } } pi = sqrt_c / sum; return pi; } int main() { const unsigned int precision = 100000; // 二进制精度位 const unsigned int iterations = 1000; // 迭代次数 std::cout << "开始计算π值 (Chudnovsky算法)..." << std::endl; std::cout << "精度: " << precision << "位 | 最大迭代: " << iterations << std::endl; // 启动资源监控线程 std::thread monitor_thread(monitor_resources); // 记录开始时间 auto start_time = std::chrono::high_resolution_clock::now(); // 计算π值 pi_value = chudnovsky_pi(precision, iterations); // 记录结束时间 auto end_time = std::chrono::high_resolution_clock::now(); auto duration = std::chrono::duration_cast<std::chrono::milliseconds>(end_time - start_time); // 停止监控线程 stop_monitor = true; monitor_thread.join(); // 输出最终结果 std::cout << "\n\n计算完成!" << std::endl; std::cout << "耗时: " << duration.count() / 1000.0 << " 秒" << std::endl; std::cout << "最终π值(前50位): " << std::setprecision(50) << pi_value << std::endl; return 0; } 此代码报错,修复错误 报错信息:default.cpp:6:10: fatal error: 'gmpxx.h' file not found #include <gmpxx.h> ^~~~~~~~~ 1 error generated. 输出完整代码
07-25
#include <iostream> #include <fstream> #include <vector> #include <Eigen/Core> #include <Eigen/Geometry> #include <g2o/core/base_vertex.h> #include <g2o/core/base_binary_edge.h> #include <g2o/core/base_unary_edge.h> #include <g2o/core/block_solver.h> #include <g2o/core/optimization_algorithm_levenberg.h> #include <g2o/solvers/dense/linear_solver_dense.h> #include <g2o/types/slam3d/vertex_se3.h> #include <g2o/types/slam3d/edge_se3.h> #include <g2o/core/eigen_types.h> #include <g2o/types/slam3d/types_slam3d.h> #include <opencv2/opencv.hpp> using namespace std; using namespace Eigen; struct Edge { size_t s; // Start index size_t e; // End index Isometry3d pose; // Relative pose between start and end }; class INS { public: void optimizeTrajectory(std::vector<Isometry3d> &poses) { std::vector<Edge> edgeData; for (size_t i = 0; i < poses.size() - 1; ++i) { Edge edge_data; edge_data.s = i; edge_data.e = i + 1; edge_data.pose = poses[i].inverse() * poses[i + 1]; edgeData.push_back(edge_data); } // 添加最后一个点到第一个点的边 Edge edge_data; edge_data.s = poses.size() - 1; // 最后一个点的索引 edge_data.e = 0; // 第一个点的索引 Isometry3d error_pose = poses[edge_data.s]; Isometry3d true_pose = error_pose * calibration_error_.Get(); LogInfo("The map optimization error is:\n" << matrixToString(calibration_error_.Get().matrix())); edge_data.pose = true_pose.inverse() * poses[edge_data.e]; edgeData.push_back(edge_data); std::unique_ptr<g2o::LinearSolverDense<g2o::BlockSolverX::PoseMatrixType>> linearSolver = std::make_unique<g2o::LinearSolverDense<g2o::BlockSolverX::PoseMatrixType>>(); g2o::OptimizationAlgorithmLevenberg *solver = new g2o::OptimizationAlgorithmLevenberg( std::make_unique<g2o::BlockSolverX>(std::move(linearSolver))); g2o::SparseOptimizer optimizer; optimizer.setAlgorithm(solver); optimizer.setVerbose(false); for (int i = 0; i < poses.size(); i++) { g2o::VertexSE3 *v = new g2o::VertexSE3(); v->setId(i); v->setEstimate(poses[i]); if (i == 0) { v->setFixed(true); } optimizer.addVertex(v); } for (const auto &pData : edgeData) { g2o::EdgeSE3 *edge = new g2o::EdgeSE3(); edge->setVertex(0, optimizer.vertex(pData.s)); edge->setVertex(1, optimizer.vertex(pData.e)); if (&pData == &edgeData.back()) { LogWarn("*******&pData == &edgeData.back()************"); edge->setInformation(Matrix6d::Identity() * 100000); } else { edge->setInformation(Matrix6d::Identity() * 0.001); } edge->setMeasurement(pData.pose); optimizer.addEdge(edge); } optimizer.initializeOptimization(); optimizer.optimize(500); for (int i = 0; i < poses.size(); i++) { g2o::VertexSE3 *vertex = dynamic_cast<g2o::VertexSE3 *>(optimizer.vertex(i)); poses[i] = vertex->estimate(); } LogWarn("Trajectory optimization successful !!!!!!!!!!"); } private: struct CalibrationError { Isometry3d Get() const { Isometry3d calib; calib.setIdentity(); calib.translate(Vector3d(0.1, 0.1, 0.1)); // Example calibration error calib.rotate(AngleAxisd(Deg2Rad(0.1), Vector3d::UnitZ())); // Example rotation error return calib; } }; double Deg2Rad(double deg) const { return deg * M_PI / 180.0; } CalibrationError calibration_error_; template<typename T> void LogInfo(const T& message) { cout << "[INFO] " << message << endl; } template<typename T> void LogWarn(const T& message) { cout << "[WARN] " << message << endl; } string matrixToString(const Matrix4d& matrix) { stringstream ss; ss << matrix; return ss.str(); } }; void generateSimulatedTrajectory(std::vector<Isometry3d>& poses, int numPoints) { double sideLength = 4.0; // 正方形的边长 double angleStep = INS().Deg2Rad(90.0); // 每个转角的角度 for (int i = 0; i < numPoints; ++i) { Isometry3d pose = Isometry3d::Identity(); switch (i % 4) { case 0: pose.translation() = Vector3d(sideLength * (i / 4), 0, 0); break; case 1: pose.translation() = Vector3d(sideLength * (i / 4 + 1), 0, 0); pose.rotate(AngleAxisd(angleStep, Vector3d::UnitZ())); break; case 2: pose.translation() = Vector3d(sideLength * (i / 4 + 1), sideLength, 0); pose.rotate(AngleAxisd(angleStep * 2, Vector3d::UnitZ())); break; case 3: pose.translation() = Vector3d(sideLength * (i / 4), sideLength, 0); pose.rotate(AngleAxisd(angleStep * 3, Vector3d::UnitZ())); break; } // 加入误差 pose.translate(Vector3d(rand() / double(RAND_MAX) * 0.1, rand() / double(RAND_MAX) * 0.1, rand() / double(RAND_MAX) * 0.1)); pose.rotate(AngleAxisd(INS().Deg2Rad(rand() % 2), Vector3d::UnitZ())); poses.push_back(pose); } } void drawTrajectory(const std::vector<Isometry3d>& poses, const std::string& title) { cv::Mat img(800, 800, CV_8UC3, cv::Scalar(255, 255, 255)); for (size_t i = 0; i < poses.size(); ++i) { Vector3d pos = poses[i].translation(); if (i > 0) { Vector3d prevPos = poses[i-1].translation(); cv::line(img, cv::Point((prevPos.x() + 4.0) * 100, (-prevPos.y() + 4.0) * 100), cv::Point((pos.x() + 4.0) * 100, (-pos.y() + 4.0) * 100), cv::Scalar(0, 255, 0), 2); } cv::circle(img, cv::Point((pos.x() + 4.0) * 100, (-pos.y() + 4.0) * 100), 3, cv::Scalar(0, 0, 0), -1); } cv::imshow(title, img); cv::waitKey(1); } int main() { srand(time(NULL)); int numTrajectoryPoints = 16; // 轨迹点数量(正方形的四个角重复四次) std::vector<Isometry3d> trajectory(numTrajectoryPoints); // 生成模拟轨迹 generateSimulatedTrajectory(trajectory, numTrajectoryPoints); // 显示优化前的轨迹 drawTrajectory(trajectory, "Before Optimization"); // 创建INS对象并进行优化 INS ins_optimizer; ins_optimizer.optimizeTrajectory(trajectory); // 显示优化后的轨迹 drawTrajectory(trajectory, "After Optimization"); cv::waitKey(0); return 0; } 报错:/usr/include/c++/9/ostream:523:5: note: template argument deduction/substitution failed: /home/guo/g2o仿真/src/optimize.cc:46:103: note: mismatched types ‘std::basic_ostream<char, _Traits>’ and ‘const char [32]’ 46 | LogInfo("The map optimization error is:\n" << matrixToString(calibration_error_.Get().matrix())); | ^ In file included from /usr/include/c++/9/iostream:39, from /home/guo/g2o仿真/src/optimize.cc:1: /usr/include/c++/9/ostream:528:5: note: candidate: ‘template<class _Traits> std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, unsigned char)’ 528 | operator<<(basic_ostream<char, _Traits>& __out, unsigned char __c) | ^~~~~~~~ /usr/include/c++/9/ostream:528:5: note: template argument deduction/substitution failed: /home/guo/g2o仿真/src/optimize.cc:46:103: note: mismatched types ‘std::basic_ostream<char, _Traits>’ and ‘const char [32]’ 46 | LogInfo("The map optimization error is:\n" << matrixToString(calibration_error_.Get().matrix())); | ^ In file included from /usr/include/c++/9/iostream:39, from /home/guo/g2o仿真/src/optimize.cc:1: /usr/include/c++/9/ostream:548:5: note: candidate: ‘template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, const _CharT*)’ 548 | operator<<(basic_ostream<_CharT, _Traits>& __out, const _CharT* __s) | ^~~~~~~~ /usr/include/c++/9/ostream:548:5: note: template argument deduction/substitution failed: /home/guo/g2o仿真/src/optimize.cc:46:103: note: mismatched types ‘std::basic_ostream<_CharT, _Traits>’ and ‘const char [32]’ 46 | LogInfo("The map optimization error is:\n" << matrixToString(calibration_error_.Get().matrix())); | ^ In file included from /usr/include/c++/9/ostream:702, from /usr/include/c++/9/iostream:39, from /home/guo/g2o仿真/src/optimize.cc:1: /usr/include/c++/9/bits/ostream.tcc:321:5: note: candidate: ‘template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, const char*)’ 321 | operator<<(basic_ostream<_CharT, _Traits>& __out, const char* __s) | ^~~~~~~~ /usr/include/c++/9/bits/ostream.tcc:321:5: note: template argument deduction/substitution failed: /home/guo/g2o仿真/src/optimize.cc:46:103: note: mismatched types ‘std::basic_ostream<_CharT, _Traits>’ and ‘const char [32]’ 46 | LogInfo("The map optimization error is:\n" << matrixToString(calibration_error_.Get().matrix())); | ^ In file included from /usr/include/c++/9/iostream:39, from /home/guo/g2o仿真/src/optimize.cc:1: /usr/include/c++/9/ostream:565:5: note: candidate: ‘template<class _Traits> std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, const char*)’ 565 | operator<<(basic_ostream<char, _Traits>& __out, const char* __s) | ^~~~~~~~ /usr/include/c++/9/ostream:565:5: note: template argument deduction/substitution failed: /home/guo/g2o仿真/src/optimize.cc:46:103: note: mismatched types ‘std::basic_ostream<char, _Traits>’ and ‘const char [32]’ 46 | LogInfo("The map optimization error is:\n" << matrixToString(calibration_error_.Get().matrix())); | ^ In file included from /usr/include/c++/9/iostream:39, from /home/guo/g2o仿真/src/optimize.cc:1: /usr/include/c++/9/ostream:578:5: note: candidate: ‘template<class _Traits> std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, const signed char*)’ 578 | operator<<(basic_ostream<char, _Traits>& __out, const signed char* __s) | ^~~~~~~~ /usr/include/c++/9/ostream:578:5: note: template argument deduction/substitution failed: /home/guo/g2o仿真/src/optimize.cc:46:103: note: mismatched types ‘std::basic_ostream<char, _Traits>’ and ‘const char [32]’ 46 | LogInfo("The map optimization error is:\n" << matrixToString(calibration_error_.Get().matrix())); | ^ In file included from /usr/include/c++/9/iostream:39, from /home/guo/g2o仿真/src/optimize.cc:1: /usr/include/c++/9/ostream:583:5: note: candidate: ‘template<class _Traits> std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, const unsigned char*)’ 583 | operator<<(basic_ostream<char, _Traits>& __out, const unsigned char* __s) | ^~~~~~~~ /usr/include/c++/9/ostream:583:5: note: template argument deduction/substitution failed: /home/guo/g2o仿真/src/optimize.cc:46:103: note: mismatched types ‘std::basic_ostream<char, _Traits>’ and ‘const char [32]’ 46 | LogInfo("The map optimization error is:\n" << matrixToString(calibration_error_.Get().matrix())); | ^ In file included from /usr/include/c++/9/iostream:39, from /home/guo/g2o仿真/src/optimize.cc:1: /usr/include/c++/9/ostream:691:5: note: candidate: ‘template<class _Ostream, class _Tp> typename std::enable_if<std::__and_<std::__not_<std::is_lvalue_reference<_Tp> >, std::__is_convertible_to_basic_ostream<_Ostream>, std::__is_insertable<typename std::__is_convertible_to_basic_ostream<_Tp>::__ostream_type, const _Tp&, void> >::value, typename std::__is_convertible_to_basic_ostream<_Tp>::__ostream_type>::type std::operator<<(_Ostream&&, const _Tp&)’ 691 | operator<<(_Ostream&& __os, const _Tp& __x) | ^~~~~~~~ /usr/include/c++/9/ostream:691:5: note: template argument deduction/substitution failed: /usr/include/c++/9/ostream: In substitution of ‘template<class _Ostream, class _Tp> typename std::enable_if<std::__and_<std::__not_<std::is_lvalue_reference<_Tp> >, std::__is_convertible_to_basic_ostream<_Ostream>, std::__is_insertable<typename std::__is_convertible_to_basic_ostream<_Tp>::__ostream_type, const _Tp&, void> >::value, typename std::__is_convertible_to_basic_ostream<_Tp>::__ostream_type>::type std::operator<<(_Ostream&&, const _Tp&) [with _Ostream = const char (&)[32]; _Tp = std::__cxx11::basic_string<char>]’: /home/guo/g2o仿真/src/optimize.cc:46:103: required from here /usr/include/c++/9/ostream:691:5: error: no type named ‘type’ in ‘struct std::enable_if<false, void>’ In file included from /usr/local/include/eigen3/Eigen/Core:50, from /home/guo/g2o仿真/src/optimize.cc:4: /usr/include/c++/9/complex:552:5: note: candidate: ‘template<class _Tp, class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, const std::complex<_Tp>&)’ 552 | operator<<(basic_ostream<_CharT, _Traits>& __os, const complex<_Tp>& __x) | ^~~~~~~~ /usr/include/c++/9/complex:552:5: note: template argument deduction/substitution failed: /home/guo/g2o仿真/src/optimize.cc:46:103: note: mismatched types ‘std::basic_ostream<_CharT, _Traits>’ and ‘const char [32]’ 46 | LogInfo("The map optimization error is:\n" << matrixToString(calibration_error_.Get().matrix())); | ^ In file included from /opt/ros/noetic/include/g2o/core/hyper_graph.h:31, from /opt/ros/noetic/include/g2o/core/optimizable_graph.h:35, from /opt/ros/noetic/include/g2o/core/base_vertex.h:30, from /home/guo/g2o仿真/src/optimize.cc:6: /usr/include/c++/9/bitset:1538:5: note: candidate: ‘template<class _CharT, class _Traits, long unsigned int _Nb> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, const std::bitset<_Nb>&)’ 1538 | operator<<(std::basic_ostream<_CharT, _Traits>& __os, | ^~~~~~~~ /usr/include/c++/9/bitset:1538:5: note: template argument deduction/substitution failed: /home/guo/g2o仿真/src/optimize.cc:46:103: note: mismatched types ‘std::basic_ostream<_CharT, _Traits>’ and ‘const char [32]’ 46 | LogInfo("The map optimization error is:\n" << matrixToString(calibration_error_.Get().matrix())); | ^ In file included from /usr/include/c++/9/memory:81, from /opt/ros/noetic/include/g2o/core/robust_kernel.h:30, from /opt/ros/noetic/include/g2o/core/base_binary_edge.h:34, from /home/guo/g2o仿真/src/optimize.cc:7: /usr/include/c++/9/bits/shared_ptr.h:66:5: note: candidate: ‘template<class _Ch, class _Tr, class _Tp, __gnu_cxx::_Lock_policy _Lp> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, const std::__shared_ptr<_Tp, _Lp>&)’ 66 | operator<<(std::basic_ostream<_Ch, _Tr>& __os, | ^~~~~~~~ /usr/include/c++/9/bits/shared_ptr.h:66:5: note: template argument deduction/substitution failed: /home/guo/g2o仿真/src/optimize.cc:46:103: note: mismatched types ‘std::basic_ostream<_CharT, _Traits>’ and ‘const char [32]’ 46 | LogInfo("The map optimization error is:\n" << matrixToString(calibration_error_.Get().matrix())); | ^ In file included from /opt/ros/noetic/include/g2o/core/sparse_block_matrix.h:34, from /opt/ros/noetic/include/g2o/core/solver.h:31, from /opt/ros/noetic/include/g2o/core/block_solver.h:31, from /home/guo/g2o仿真/src/optimize.cc:9: /usr/include/c++/9/iomanip:79:5: note: candidate: ‘template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, std::_Resetiosflags)’ 79 | operator<<(basic_ostream<_CharT, _Traits>& __os, _Resetiosflags __f) | ^~~~~~~~ /usr/include/c++/9/iomanip:79:5: note: template argument deduction/substitution failed: /home/guo/g2o仿真/src/optimize.cc:46:103: note: mismatched types ‘std::basic_ostream<_CharT, _Traits>’ and ‘const char [32]’ 46 | LogInfo("The map optimization error is:\n" << matrixToString(calibration_error_.Get().matrix())); | ^ In file included from /opt/ros/noetic/include/g2o/core/sparse_block_matrix.h:34, from /opt/ros/noetic/include/g2o/core/solver.h:31, from /opt/ros/noetic/include/g2o/core/block_solver.h:31, from /home/guo/g2o仿真/src/optimize.cc:9: /usr/include/c++/9/iomanip:109:5: note: candidate: ‘template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, std::_Setiosflags)’ 109 | operator<<(basic_ostream<_CharT, _Traits>& __os, _Setiosflags __f) | ^~~~~~~~ /usr/include/c++/9/iomanip:109:5: note: template argument deduction/substitution failed: /home/guo/g2o仿真/src/optimize.cc:46:103: note: mismatched types ‘std::basic_ostream<_CharT, _Traits>’ and ‘const char [32]’ 46 | LogInfo("The map optimization error is:\n" << matrixToString(calibration_error_.Get().matrix())); | ^ In file included from /opt/ros/noetic/include/g2o/core/sparse_block_matrix.h:34, from /opt/ros/noetic/include/g2o/core/solver.h:31, from /opt/ros/noetic/include/g2o/core/block_solver.h:31, from /home/guo/g2o仿真/src/optimize.cc:9: /usr/include/c++/9/iomanip:143:5: note: candidate: ‘template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, std::_Setbase)’ 143 | operator<<(basic_ostream<_CharT, _Traits>& __os, _Setbase __f) | ^~~~~~~~ /usr/include/c++/9/iomanip:143:5: note: template argument deduction/substitution failed: /home/guo/g2o仿真/src/optimize.cc:46:103: note: mismatched types ‘std::basic_ostream<_CharT, _Traits>’ and ‘const char [32]’ 46 | LogInfo("The map optimization error is:\n" << matrixToString(calibration_error_.Get().matrix())); | ^ In file included from /opt/ros/noetic/include/g2o/core/sparse_block_matrix.h:34, from /opt/ros/noetic/include/g2o/core/solver.h:31, from /opt/ros/noetic/include/g2o/core/block_solver.h:31, from /home/guo/g2o仿真/src/optimize.cc:9: /usr/include/c++/9/iomanip:178:5: note: candidate: ‘template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, std::_Setfill<_CharT>)’ 178 | operator<<(basic_ostream<_CharT, _Traits>& __os, _Setfill<_CharT> __f) | ^~~~~~~~ /usr/include/c++/9/iomanip:178:5: note: template argument deduction/substitution failed: /home/guo/g2o仿真/src/optimize.cc:46:103: note: mismatched types ‘std::basic_ostream<_CharT, _Traits>’ and ‘const char [32]’ 46 | LogInfo("The map optimization error is:\n" << matrixToString(calibration_error_.Get().matrix())); | ^ In file included from /opt/ros/noetic/include/g2o/core/sparse_block_matrix.h:34, from /opt/ros/noetic/include/g2o/core/solver.h:31, from /opt/ros/noetic/include/g2o/core/block_solver.h:31, from /home/guo/g2o仿真/src/optimize.cc:9: /usr/include/c++/9/iomanip:208:5: note: candidate: ‘template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, std::_Setprecision)’ 208 | operator<<(basic_ostream<_CharT, _Traits>& __os, _Setprecision __f) | ^~~~~~~~ /usr/include/c++/9/iomanip:208:5: note: template argument deduction/substitution failed: /home/guo/g2o仿真/src/optimize.cc:46:103: note: mismatched types ‘std::basic_ostream<_CharT, _Traits>’ and ‘const char [32]’ 46 | LogInfo("The map optimization error is:\n" << matrixToString(calibration_error_.Get().matrix())); | ^ In file included from /opt/ros/noetic/include/g2o/core/sparse_block_matrix.h:34, from /opt/ros/noetic/include/g2o/core/solver.h:31, from /opt/ros/noetic/include/g2o/core/block_solver.h:31, from /home/guo/g2o仿真/src/optimize.cc:9: /usr/include/c++/9/iomanip:238:5: note: candidate: ‘template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, std::_Setw)’ 238 | operator<<(basic_ostream<_CharT, _Traits>& __os, _Setw __f) | ^~~~~~~~ /usr/include/c++/9/iomanip:238:5: note: template argument deduction/substitution failed: /home/guo/g2o仿真/src/optimize.cc:46:103: note: mismatched types ‘std::basic_ostream<_CharT, _Traits>’ and ‘const char [32]’ 46 | LogInfo("The map optimization error is:\n" << matrixToString(calibration_error_.Get().matrix())); | ^ In file included from /opt/ros/noetic/include/g2o/core/sparse_block_matrix.h:34, from /opt/ros/noetic/include/g2o/core/solver.h:31, from /opt/ros/noetic/include/g2o/core/block_solver.h:31, from /home/guo/g2o仿真/src/optimize.cc:9: /usr/include/c++/9/iomanip:311:5: note: candidate: ‘template<class _CharT, class _Traits, class _MoneyT> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, std::_Put_money<_MoneyT>)’ 311 | operator<<(basic_ostream<_CharT, _Traits>& __os, _Put_money<_MoneyT> __f) | ^~~~~~~~ /usr/include/c++/9/iomanip:311:5: note: template argument deduction/substitution failed: /home/guo/g2o仿真/src/optimize.cc:46:103: note: mismatched types ‘std::basic_ostream<_CharT, _Traits>’ and ‘const char [32]’ 46 | LogInfo("The map optimization error is:\n" << matrixToString(calibration_error_.Get().matrix())); | ^ In file included from /opt/ros/noetic/include/g2o/core/sparse_block_matrix.h:34, from /opt/ros/noetic/include/g2o/core/solver.h:31, from /opt/ros/noetic/include/g2o/core/block_solver.h:31, from /home/guo/g2o仿真/src/optimize.cc:9: /usr/include/c++/9/iomanip:363:5: note: candidate: ‘template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, std::_Put_time<_CharT>)’ 363 | operator<<(basic_ostream<_CharT, _Traits>& __os, _Put_time<_CharT> __f) | ^~~~~~~~ /usr/include/c++/9/iomanip:363:5: note: template argument deduction/substitution failed: /home/guo/g2o仿真/src/optimize.cc:46:103: note: mismatched types ‘std::basic_ostream<_CharT, _Traits>’ and ‘const char [32]’ 46 | LogInfo("The map optimization error is:\n" << matrixToString(calibration_error_.Get().matrix())); | ^ In file included from /usr/local/include/eigen3/Eigen/Core:269, from /home/guo/g2o仿真/src/optimize.cc:4: /usr/local/include/eigen3/Eigen/src/Core/IO.h:249:16: note: candidate: ‘template<class Derived> std::ostream& Eigen::operator<<(std::ostream&, const Eigen::DenseBase<Derived>&)’ 249 | std::ostream & operator << | ^~~~~~~~ /usr/local/include/eigen3/Eigen/src/Core/IO.h:249:16: note: template argument deduction/substitution failed: /home/guo/g2o仿真/src/optimize.cc:46:103: note: ‘std::string’ {aka ‘std::__cxx11::basic_string<char>’} is not derived from ‘const Eigen::DenseBase<Derived>’ 46 | LogInfo("The map optimization error is:\n" << matrixToString(calibration_error_.Get().matrix())); | ^ /home/guo/g2o仿真/src/optimize.cc:77:38: error: ‘Matrix6d’ has not been declared 77 | edge->setInformation(Matrix6d::Identity() * 100000); | ^~~~~~~~ /home/guo/g2o仿真/src/optimize.cc:79:38: error: ‘Matrix6d’ has not been declared 79 | edge->setInformation(Matrix6d::Identity() * 0.001); | ^~~~~~~~ /home/guo/g2o仿真/src/optimize.cc: In member function ‘Eigen::Isometry3d INS::CalibrationError::Get() const’: /home/guo/g2o仿真/src/optimize.cc:101:48: error: cannot call member function ‘double INS::Deg2Rad(double) const’ without object 101 | calib.rotate(AngleAxisd(Deg2Rad(0.1), Vector3d::UnitZ())); // Example rotation error | ^ /home/guo/g2o仿真/src/optimize.cc: In function ‘void generateSimulatedTrajectory(std::vector<Eigen::Transform<double, 3, 1> >&, int): /home/guo/g2o仿真/src/optimize.cc:131:42: error: ‘double INS::Deg2Rad(double) const’ is private within this context 131 | double angleStep = INS().Deg2Rad(90.0); // 每个转角的角度 | ^ /home/guo/g2o仿真/src/optimize.cc:106:12: note: declared private here 106 | double Deg2Rad(double deg) const { | ^~~~~~~ /home/guo/g2o仿真/src/optimize.cc:146:56: error: ‘double INS::Deg2Rad(double) const’ is private within this context 146 | pose.rotate(AngleAxisd(INS().Deg2Rad(rand() % 2), Vector3d::UnitZ())); | ^ /home/guo/g2o仿真/src/optimize.cc:106:12: note: declared private here 106 | double Deg2Rad(double deg) const { | ^~~~~~~ make[2]: *** [CMakeFiles/g2o_demo.dir/build.make:76:CMakeFiles/g2o_demo.dir/optimize.cc.o] 错误 1 make[1]: *** [CMakeFiles/Makefile2:673:CMakeFiles/g2o_demo.dir/all] 错误 2 make: *** [Makefile:146:all] 错误 2 给出完整修改后代码
最新发布
08-03
49725@DESKTOP-CB4LRLP /cygdrive/f/S $ g++ -o screensaver_clock F:/S/screensaver_clock.cpp -lgdiplus -mwindows F:/S/screensaver_clock.cpp: In function 'void SetFontSize(HWND)': F:/S/screensaver_clock.cpp:21:54: error: no matching function for call to 'std::basic_ofstream<wchar_t>::open(std::__cxx11::wstring&, const openmode&)' logFile.open(g_runtimeFilePath, std::ios::app); ^ In file included from F:/S/screensaver_clock.cpp:2: D:/wingcc/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:851:7: note: candidate: 'void std::basic_ofstream<_CharT, _Traits>::open(const char*, std::ios_base::openmode) [with _CharT = wchar_t; _Traits = std::char_traits<wchar_t>; std::ios_base::openmode = std::_Ios_Openmode]' open(const char* __s, ios_base::openmode __mode = ios_base::out) ^~~~ D:/wingcc/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:851:7: note: no known conversion for argument 1 from 'std::__cxx11::wstring' {aka 'std::__cxx11::basic_string<wchar_t>'} to 'const char*' D:/wingcc/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:871:7: note: candidate: 'void std::basic_ofstream<_CharT, _Traits>::open(const string&, std::ios_base::openmode) [with _CharT = wchar_t; _Traits = std::char_traits<wchar_t>; std::__cxx11::string = std::__cxx11::basic_string<char>; std::ios_base::openmode = std::_Ios_Openmode]' open(const std::string& __s, ios_base::openmode __mode = ios_base::out) ^~~~ D:/wingcc/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:871:7: note: no known conversion for argument 1 from 'std::__cxx11::wstring' {aka 'std::__cxx11::basic_string<wchar_t>'} to 'const string&' {aka 'const std::__cxx11::basic_string<char>&'} F:/S/screensaver_clock.cpp: In function 'void SetTitle(HWND)': F:/S/screensaver_clock.cpp:32:54: error: no matching function for call to 'std::basic_ofstream<wchar_t>::open(std::__cxx11::wstring&, const openmode&)' logFile.open(g_runtimeFilePath, std::ios::app); ^ In file included from F:/S/screensaver_clock.cpp:2: D:/wingcc/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:851:7: note: candidate: 'void std::basic_ofstream<_CharT, _Traits>::open(const char*, std::ios_base::openmode) [with _CharT = wchar_t; _Traits = std::char_traits<wchar_t>; std::ios_base::openmode = std::_Ios_Openmode]' open(const char* __s, ios_base::openmode __mode = ios_base::out) ^~~~ D:/wingcc/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:851:7: note: no known conversion for argument 1 from 'std::__cxx11::wstring' {aka 'std::__cxx11::basic_string<wchar_t>'} to 'const char*' D:/wingcc/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:871:7: note: candidate: 'void std::basic_ofstream<_CharT, _Traits>::open(const string&, std::ios_base::openmode) [with _CharT = wchar_t; _Traits = std::char_traits<wchar_t>; std::__cxx11::string = std::__cxx11::basic_string<char>; std::ios_base::openmode = std::_Ios_Openmode]' open(const std::string& __s, ios_base::openmode __mode = ios_base::out) ^~~~ D:/wingcc/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:871:7: note: no known conversion for argument 1 from 'std::__cxx11::wstring' {aka 'std::__cxx11::basic_string<wchar_t>'} to 'const string&' {aka 'const std::__cxx11::basic_string<char>&'} F:/S/screensaver_clock.cpp: In function 'void SetCountdownDate(HWND)': F:/S/screensaver_clock.cpp:43:54: error: no matching function for call to 'std::basic_ofstream<wchar_t>::open(std::__cxx11::wstring&, const openmode&)' logFile.open(g_runtimeFilePath, std::ios::app); ^ In file included from F:/S/screensaver_clock.cpp:2: D:/wingcc/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:851:7: note: candidate: 'void std::basic_ofstream<_CharT, _Traits>::open(const char*, std::ios_base::openmode) [with _CharT = wchar_t; _Traits = std::char_traits<wchar_t>; std::ios_base::openmode = std::_Ios_Openmode]' open(const char* __s, ios_base::openmode __mode = ios_base::out) ^~~~ D:/wingcc/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:851:7: note: no known conversion for argument 1 from 'std::__cxx11::wstring' {aka 'std::__cxx11::basic_string<wchar_t>'} to 'const char*' D:/wingcc/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:871:7: note: candidate: 'void std::basic_ofstream<_CharT, _Traits>::open(const string&, std::ios_base::openmode) [with _CharT = wchar_t; _Traits = std::char_traits<wchar_t>; std::__cxx11::string = std::__cxx11::basic_string<char>; std::ios_base::openmode = std::_Ios_Openmode]' open(const std::string& __s, ios_base::openmode __mode = ios_base::out) ^~~~ D:/wingcc/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/fstream:871:7: note: no known conversion for argument 1 from 'std::__cxx11::wstring' {aka 'std::__cxx11::basic_string<wchar_t>'} to 'const string&' {aka 'const std::__cxx11::basic_string<char>&'}报错,优化代码,代码全输出
05-13
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值