이 질문을 위해 필자는 상황을 좀 더 직접적으로 간단하게 줄였습니다.FLTK - 여러 개의 .cpp 컴파일 - Linux
파일이 매우 간단합니다 (blah.cpp
). 컴파일하려면
#include <FL/Fl.H>
#include <FL/Fl_Window.H>
int main(int argc, char **argv) {
Fl_Window* win = new Fl_Window(100,100,100,100,"Title");
win->show();
return Fl::run();
}
, 내 단말기에 입력 (동안 파일 blah.cpp
의 디렉토리에) 완벽하게 잘 작동
fltk-config --compile blah.cpp
. 간단히 ./blah
을 입력하면 100 픽셀 창이 화면에 표시됩니다. 그러나 하나 이상의 파일, 즉 blah.cpp
, head.h
및 blah2.cpp
으로 확장하고 싶다면 문제가 발생합니다.
/* head.h */
#ifndef HEAD
#define HEAD
#include <FL/Fl.H>
#include <FL/Fl_Window.H>
class My_Window{
public:
My_Window(int,int);
bool open();
~My_Window(){
delete win;
}
private:
Fl_Window* win;
};
#endif
/* blah2.cpp */
#include "head.h"
My_Window::My_Window(int w, int h):{
win = new Fl_Window(w,h);
win->show();
}
bool My_Window::open(){
return Fl::run();
}
/* blah.cpp */
#include "head.h"
int main() {
Window win(300,300);
return win.open();
}
내 질문은 내가 터미널이 프로젝트 (blah.cpp 및 blah2.cpp)를 컴파일 얼마나, 무엇입니까? 내 초기 추측은 같은 디렉토리에 모든 것을 배치하고
fltk-config --compile *.cpp
또는
fltk-config --compile "*.cpp"
그러나 그 작업도 같이 할 것입니다. 어떻게 이것을 컴파일하려고할까요?
[솔루션]
내가이 입력을 완료 한 후이 권리를 해결 결국,하지만 인터넷에 시간이 꽤 많이 보았다, 그래서 아마이 사람을 도움이 될 것입니다.
나는 멀리 fltk-config
명령했고, 일반 g++
붙어 :
g++ -std=c++11 blah.cpp blah2.cpp -o blah -lfltk
그리고 그것은 일한와 함께! 프로그램의 실행 파일은 다음 제목으로 작성되었습니다 blah
! 물론 -std=c++11
행은 C++ 11 표준을 따르는 것을 의미하므로 내 경우에는 완전히 필요하지 않습니다.