2013-02-14 92 views
0

我希望能夠在不使用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。

對於給定的情況是否可以這樣做? ...如果是的話,你的建議真的很感激!

+0

確切在哪裏問題是什麼?只需手動重現makefile中的步驟即可。 – us2012 2013-02-14 21:50:24

+2

有時候我想知道在這裏發帖的人是否是受虐狂。如果它不想在不使用C庫的情況下艱難地完成任務,那麼它就會在不使用make的情況下艱難地完成任務。是的,你可以通過編寫一個編譯所有文件的腳本文件來完成這項工作(每一次,因此需要比使用make更長的時間) - 只需將m​​akefile包含的所有命令放入腳本文件即可。如果你不喜歡這個想法,爲什麼不直接用手工輸入呢? – 2013-02-14 22:04:08

+0

只要不製作,你可以使用另一個構建系統嗎? – juanchopanza 2013-02-14 22:11:34

回答

2

假設你的main()函數是在TEST.CPP,你想命名爲可執行的「測試」,你可以直接從目錄中調用編譯器,你會調用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 
+0

非常感謝Ferenc – user2056096 2013-02-14 22:59:49

相關問題