Я хотел бы иметь возможность скомпилировать исходный файл C ++ без использования make-файла. И вот прототип моей проблемы … У меня есть следующее .cpp
файл
// special libraries to include
#include "acado.h"#include "auxiliary_functions.c"/* -------------------------- */
// Create objects for special classes
ACADOvariables acadoVariables;
ACADOworkspace acadoWorkspace;
int main(){
// perform task A_1
// perform task A_2
// Tasks A_1 and A_2 depend on the specially included headers
return 0;
}
и в том же каталоге у меня есть следующий make-файл, который позволяет мне скомпилировать .cpp
файл успешно
LDLIBS = -lm
CXXFLAGS = -O3 -finline-functions -I. -I./qpoases/INCLUDE -I./qpoases/SRC
CFLAGS = -O3
CC = g++
OBJECTS = \
./qpoases/SRC/QProblemB.o \
./qpoases/SRC/Bounds.o \
./qpoases/SRC/Constraints.o \
./qpoases/SRC/SubjectTo.o \
./qpoases/SRC/Indexlist.o \
./qpoases/SRC/CyclingManager.o \
./qpoases/SRC/Utils.o \
./qpoases/SRC/MessageHandling.o \
./qpoases/solver.o \
integrator.o \
condensing.o \
gauss_newton_method.o
.PHONY: all
all: test libacado_exported_rti.a
test: ${OBJECTS} test.o
./qpoases/solver.o : ./qpoases/solver.hpp
integrator.o : acado.h
condensing.o : acado.h
gauss_newton_method.o : acado.h ./qpoases/solver.hpp
test.o : acado.h ./qpoases/solver.hpp
libacado_exported_rti.a: ${OBJECTS}
ar r $@ $?
${OBJECTS} : ./qpoases/solver.hpp
.PHONY : clean
clean :
-rm -f *.o *.a ./qpoases/SRC/*.o ./qpoases/SRC/*.a test
Теперь я хочу удалить этот make-файл из .cpp
каталог файлов. В то же время я хотел бы иметь возможность .cpp
файл …
Зная, что объектные файлы и библиотеки, на которые ссылается make-файл, будут находиться в соответствующих каталогах ….
Итак, все, что я хотел бы сделать, это собрать .cpp
файл без make-файла.
Можно ли сделать что-то подобное для данного случая? … Если да, ваши предложения действительно ценятся!
Предполагая, что ваша функция main () находится в test.cpp, и вам нужен исполняемый файл с именем «test», вы можете вызывать компилятор непосредственно из каталога, в который вы вызываете make:
g++ test.cpp -O3 -finline-functions -I. -I./qpoases/INCLUDE -I./qpoases/SRC -lm -o test ./qpoases/SRC/QProblemB.o ./qpoases/SRC/Bounds.o ./qpoases/SRC/Constraints.o ./qpoases/SRC/SubjectTo.o ./qpoases/SRC/Indexlist.o ./qpoases/SRC/CyclingManager.o ./qpoases/SRC/Utils.o ./qpoases/SRC/MessageHandling.o ./qpoases/solver.o integrator.o condensing.o gauss_newton_method.o
Других решений пока нет …