我希望能夠在不使用makefile的情況下編譯C++源文件。這裏是我的問題的原型......我有以下.cpp
文件如何在不使用makefile的情況下鏈接目標文件和庫
// 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;
}
和我有以下生成文件,讓我編譯.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 [email protected] $?
${OBJECTS} : ./qpoases/solver.hpp
.PHONY : clean
clean :
-rm -f *.o *.a ./qpoases/SRC/*.o ./qpoases/SRC/*.a test
相同的目錄現在,爲了我的目的,我想從.cpp
文件目錄中刪除此生成文件。同時,我想能夠編譯.cpp
文件...
即使知道目標文件和庫的生成文件是指將在其各自的目錄....
所以,我想要做的一切就是編譯.cpp
文件,而不需要makefile。
對於給定的情況是否可以這樣做? ...如果是的話,你的建議真的很感激!
確切在哪裏問題是什麼?只需手動重現makefile中的步驟即可。 – us2012 2013-02-14 21:50:24
有時候我想知道在這裏發帖的人是否是受虐狂。如果它不想在不使用C庫的情況下艱難地完成任務,那麼它就會在不使用make的情況下艱難地完成任務。是的,你可以通過編寫一個編譯所有文件的腳本文件來完成這項工作(每一次,因此需要比使用make更長的時間) - 只需將makefile包含的所有命令放入腳本文件即可。如果你不喜歡這個想法,爲什麼不直接用手工輸入呢? – 2013-02-14 22:04:08
只要不製作,你可以使用另一個構建系統嗎? – juanchopanza 2013-02-14 22:11:34