崇高的文本用C编译没有多文件项目++(Sublime Text not compiling mult

2019-08-01 05:04发布

我编译一个多文件的C ++程序,并具有下列错误;

Undefined symbols for architecture i386:
  "included::printMSG()", referenced from:
      _main in ccQwMj1l.o
ld: symbol(s) not[Finished in 0.3s with exit code 1] found for architecture i386
collect2: ld returned 1 exit status

我的代码:main.cpp中: https://gist.github.com/3845822

included.cpp: https://gist.github.com/3845825

included.h: https://gist.github.com/3845827

(确认一起工作g++

编辑:我不把这些文件中的一个项目,他们只是都在同一个文件夹中,我编写main.cpp

Answer 1:

你不能只是编译一个单一的文件,并希望所有其他文件将自动链接到它创建的最终方案。

要做到这一点的方法之一是使用一个被称为make ,读取一个Makefile有规则, make follows`。

一个简单的Makefile可以是这样的:

CXXFLAGS = -Wall -g

my_pogram: main.o other_file.o third_file.o
    g++ main.o other_file.o third_file.o -o my_program

main.o: main.cpp
    g++ $(CXXFLAGS) -c -o main.o main.cpp

other_file.o: other_file.cpp
    g++ $(CXXFLAGS) -c -o other_file.o other_file.cpp

third_file.o: third_file.cpp
    g++ $(CXXFLAGS) -c -o third_file.o third_file.cpp

还有其他类似的程序来处理这个问题。 一个是流行的是CMake的 。



文章来源: Sublime Text not compiling multi-file projects in C++