Создайте библиотеку вместе с моей основной программой.C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Создайте библиотеку вместе с моей основной программой.

Сообщение Anonymous »

Я работаю над небольшим хобби-проектом на C++ по изучению OpenGL. Я разделил свой код на src/main.cpp, который обрабатывает создание окна и запускает основной цикл, и библиотеку src/engine/, которая содержит множество классов, которые фактически используют OpenGL (например, . ShaderProgram, Mesh и т. д.). Я сделал это разделение, потому что хочу иметь возможность повторно использовать все эти классы для будущих проектов, например библиотеки.
В частности, проект настроен следующим образом:

Код: Выделить всё

/include/     //Third party library headers (SDL.h, etc.)
/lib/         //Third party libraries (libSDL.a, etc.)
/src/main.cpp //My main program, which imports "engine/engine.h" and uses the classes provided
/src/engine/  //Headers and cpp files for my OpenGL classes
В настоящее время я создаю проект с помощью следующего Makefile:

Код: Выделить всё

CXX = g++
CXXFLAGS = -Wall -std=c++20

all: clean game

# todo: figure out cross platform stuff
game:
$(CXX) $(CXXFLAGS) -I ./include/ -L ./lib/ -o game ./src/main.cpp ./src/glad.c ./src/engine/ShaderProgram.cpp ./src/engine/Mesh.cpp ./src/engine/Camera.cpp -lmingw32 -lSDL2main -lSDL2 -lopengl32

clean:
del game.exe
Эта настройка во многом демонстрирует мою неопытность, поскольку мне нужно указывать каждый новый .cpp индивидуально в одной огромной строке g++. Я хотел бы собрать код в /engine/ отдельно и в конечном итоге создать предварительно скомпилированную библиотеку из /engine/, которую я смогу повторно использовать в будущем, статически связывая ее.Я думаю, мне нужно создать новую цель в Makefile, например engine:, и создать для нее архив .a, от которого зависит цель game:, но я не уверен, что это лучший подход. Я также поигрался с перемещением кода /engine/ в каталог /include/, но мне это показалось неправильным, поскольку сейчас там есть только заголовки.
Есть ли у кого-нибудь совет по настройке системы сборки для такого типа проекта?

Подробнее здесь: https://stackoverflow.com/questions/793 ... in-program
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»