2013-02-14 99 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

相关问题