繁体   English   中英

体系结构x86_64的未定义符号:用C ++编译

[英]Undefined symbols for architecture x86_64: Compiling in C++

使用链工作C ++程序并且在不知道原因的情况下编译有问题。

我得到的错误是:

Undefined symbols for architecture x86_64:
  "userInputOutput(linearList*, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)", referenced from:
      _main in ccBEoeAc.o
  "chain::chain(int)", referenced from:
      _main in ccBEoeAc.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status

如果我使用g ++ -c main2.cpp,它会编译,但我想确保我不只是用这个选项覆盖一些东西。

Main2.cpp

#include <iostream>
#include "Chain.h"
#include "IOcode.h"

using namespace std;

int main (){

    //Call constructor, initial capacity 10
    chain *myChain=new chain(10);

    //Print initial chain
    userInputOutput(myChain, "chain");
}

Chain.cpp

 #include "Chain.h"
#include <stdio.h>
#include <iostream>
#include <sstream>
#include "Myexception.h"

using namespace std;

    chain::chain(int initialCapacity)
    {
    cout<<"This method is working"<<endl;
/*  if (initialCapacity <1)
    {
        //throw illegalParameterValue();
    }
    firstNode=NULL;
    listSize=0;
*/
};

IOcode.cpp

#include <iostream>
#include "Linearlist.h"

using namespace std;

void userInputOutput (linearList* l, string dataStructure){

    for (int i = 0; i < 13; i++)
            l->insert(i, i+1);
    cout<<"The initial "<<dataStructure<<" is: ";
    l->traverse();
    cout<<"welcome to the assignmet 3!"<<endl;
    while(true){
       //do stuff

    }
}

知道我为什么会收到这些错误吗? IOcode文件提供给我,我创建的chain.cpp。 对不起,可怜的代码,C ++的新手。

您只是编译一个文件。

这对于快速而肮脏的尝试应该没问题:

g++  main2.cpp Chain.cpp IOcode.cpp 

虽然我会添加-Wall -Wextra -pedantic -Werror

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM