Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

474
Visualizações
Compiling SFML on linux (ubuntu)

In compiling a SFML app,

  • I need to first create the cpp file with the SFML code and save file
  • Then write the command: g++ -c main.cpp to compile and create the object file.
  • Finally, to create SFML app, i need to write the command:
    g++ main.o -o sfml-app -lsfml-graphics -lsfml-window -lsfml-system

I was successfully able to compile and run my first app, but can't we shorten this process, I mean do I have to type out this every time I compile, and make application?

I have this question also about compiling c++ files in general. Every time I have to write g++ filename.cpp -o filename. How can I shorten this process? Thank you.

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

It is very common to use a Makefile on Linux. The Makefile is simpler if you name your main source file the same as you want your finished program to be called.

So if you rename your main.cpp file to sfml-app.cpp and then create a file called Makefile and copy this text into it:

# optional flags (if the compiler supports it)
CXXFLAGS += -std=c++11

# HIGHLY RECOMMENDED flags
CXXFLAGS += -Wall -Wextra -pedantic-errors

# required for SFML programs
LDLIBS := $(shell pkg-config sfml-all --libs)

# The rest will turn any source file ending in .cpp
# into a program of the same name

SOURCES := $(wildcard *.cpp)
PROGRAMS := $(patsubst %.cpp,%,$(SOURCES))

all: $(PROGRAMS)

clean:
    $(RM) $(PROGRAMS)

Type: make to build the programs and make clean to remove them.

Note: The indentation of the $(RM) $(PROGRAMS) command must be a TAB, not spaces.

If you want to compile another program in the same directory simply create another source file in the directory another-app.cpp and make will automatically turn it into a program.

This Makefile will turn any source file (ending in .cpp) into a program of the same name.

Note: When you want to build larger, multi-file programs you will need a different Makefile. If you are serious about programming then you should learn make.

Here you can learn all about make.

over 4 years ago · Santiago Trujillo Relatório

0

You can write a .sh script that executes the commands:

g++ -c main.cpp
g++ main.o -o sfml-app -lsfml-graphics -lsfml-window -lsfml-system
over 4 years ago · Santiago Trujillo Relatório

0

One solution is to use build automation tool. A lot of differents tools exists, each with strong and weak points.

Personnaly, for small project, I use Make. You write in a file, named Makefile, rules which descibe relation between files and how to realize each step. For example, the minimal Makefile for your project will be :

sfml-app: main.o
    g++ main.o -o sfml-app -lsfml-graphics -lsfml-window -lsfml-system

main.o: main.c
    g++ -c main.cpp

This file is located at root of project. You just have to enter "make" command to launch build. If you want, you will find a lot of documentation on internet. see https://en.wikipedia.org/wiki/Make_%28software%29 I encourage you to read about makefile to use it correctly and to be able to use its power.

Also, someone can advise you to use another build automation tool: it's a personnaly choice! You will find a list of existing tool here (not exhaustive): https://en.wikipedia.org/wiki/List_of_build_automation_software

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda