ПредишенСледващото

За да разберете защо не сте го направили, трябва да се разбере какво свързване. За това ние трябва да разберем това, което прави г ++ (както и на други плюс компилатори)

Поведението по подразбиране (без никакви специални знамена / опции).

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 система чете в проекта и е инструментите (гр ++, свръзката, или каквито и да било специални програми специално за проекта), в съответствие с инструкциите на сценария.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!