zoukankan      html  css  js  c++  java
  • eclipse C++ ld: 1 duplicate symbol for architecture x86_64

    想要在test_bignit.cpp里面使用bigint.cpp的函数

    #include <vector>
    #include <string>
    using namespace std;
    
    typedef string BigInt;
    typedef vector<double> Poly;
    
    BigInt multiply_int(const BigInt &a,const BigInt &b){
        Poly d(a.size()+b.size()-1,0);
        BigInt res;
        double temp=0;
        for(int i=0;i<a.size();i++){
            for(int j=0;j<b.size();j++){
                d[i+j] += (a[i]-48) * (b[j]-48);
            }
        }
        for(int i=0;i<d.size();i++)
        res.append(to_string((int)d[i]));
        return res;
    }
    #include <iostream>
    #include <vector>
    
    using namespace std;
    
    #include "bigint.cpp"
    
    int main()
    { 
    
      BigInt A,B;
    
      cin >> A >> B;
    
      cout << multiply_int(A,B) << endl;
    
    }

    一直报错:ld: 1 duplicate symbol for architecture x86_64

    网上一直说import了重复的东西或者有多个main,好吧,查了很久,都没问题。。。

    后来我把test_bigint.cpp中 #include "bigint.cpp" 删去,并在使用前加上函数定义

    #include <iostream>
    //#include "bigint.cpp"
    using namespace std;
    typedef string BigInt;
    BigInt multiply_int(const BigInt &a,const BigInt &b);
    int main()
    {
    
      BigInt A,B;
    
      cin >> A >> B;
    
      cout << multiply_int(A,B) << endl;
    
    }

    解决问题。。。。。。。

  • 相关阅读:
    Java——数组
    Java——控制循环结构
    脏检查
    Session跟SessionFactory的线程安全与非安全
    脏检查and刷新机构
    oracle函数
    多线程下单列模式
    多线程
    线程同步
    文件上传功能的实现
  • 原文地址:https://www.cnblogs.com/developerchen/p/7559954.html
Copyright © 2011-2022 走看看