За да разберете защо не сте го направили, трябва да се разбере какво свързване. За това ние трябва да разберем това, което прави г ++ (както и на други плюс компилатори)
Поведението по подразбиране (без никакви специални знамена / опции).
Defaul гр ++ изпълнява повече от просто компилация тя също води самостоятелна свръзка за резултат от компилирането (файл с разширение * .o или * .obj). Такъв файл (* .o) и не могат да бъдат създадени, различна версия на компилатора може директно да се обадите на свръзката.
Какво не е наред с поведението по подразбиране.
Не може да се създаде изпълним който се състои от повече от един * .cpp файл. Това означава, че ако проектът две или повече * .cpp файлове, трябва да се промени поведението на компилатора има специални опции, които забраняват да предизвика свръзката автоматично.
Как да създадете изпълними от много * .cpp файлове
1. Съставете всеки * .cpp файл поотделно с опция да се посочи, че продукцията трябва да получат * .o файл.
2. свържете отново * .o файлове заедно в един-единствен изпълним.
Във вашия случай е необходимо да се направи нещо като това:
г ++ -С -о main.o main.cpp
г ++ -С -о renderSystem.o renderSystem.cpp
г ++ -о GAME.EXE main.o renderSystem.o
Не използвайте г ++ на Windows, така че не може да гарантира, че този пример ще работи. Но на общия принцип на надежда е ясно.
Така че това, което е свързването?
Тъй като е обичайно да се използват потребителски скриптове за изграждане на т.нар meykfayly (Makefile) за мулти-проекти. Този файл е описано в какъв ред и какви опции трябва да компилирате файлове, както и да ги свърже.
Ако си спомням правилно, Visual Studio създава файла автоматично, за съжаление той не е съвместим с г ++.
Освен това, в света най-различни вариации и стандарти meykfayla, почти всеки първи IDE разработчик на "изобретяването" му версия meykfayla несъвместими с другите.
Приложения, които изпълняват тези meykfayly нарича bildovoy система. В Linux най-често са най-вероятно да направи и cmake. В допълнение към тях много по-bildovyh системи: scons, autotools, Gradle, WAF. хиляди от тях.
Bildovaya meykfayly система чете в проекта и е инструментите (гр ++, свръзката, или каквито и да било специални програми специално за проекта), в съответствие с инструкциите на сценария.
Свързани статии