ぱたへね

はてなダイアリーはrustの色分けができないのでこっちに来た

Programing Principles and Practice Using C++ chap12

Stroustrup先生の Programming Principles and Practice Using C++を読んでいます。
ようやく1/3を越えました。

序文はスラドで読めます。とても良い本です。
http://slashdot.jp/~taro-nishino/journal/498477

chap12では、GUIを使ったプログラミングの重要性についてStroustrup先生が語っています。
・Graphics are useful.
・Graphics are fun.
・Graphics provide lots of interesting code to read.
・Graphics are a fertile source of design examples.
・Graphics provide a good introduction to what is commonly called object-oriented programming and the language features that suport it.
・Some of the key graphics concepts are nontrivial.

プログラミングの入門書で、この視点はとても面白いと思います。この本ではGUIのライブラリとして、fltkを使っています。Ubuntu環境では、fltkパッケージマネージャーから簡単にインストールできますが、p1160のプログラムはそのまま動きません。

動くように修正した、CソースとMakefileです。

Cソース(fl.cpp)
ヘッダーファイルのファイル名.Hが大文字です。

#include <Fl/Fl.H>
#include <Fl/Fl_Box.H>
#include <Fl/Fl_Window.H>

int main()
{
  Fl_Window window(200, 200, "Windows title");
  Fl_Box box(0, 0, 200, 200, "Hey, I mean, Hello World!");
  window.show();
  return Fl::run();
    
}

Makefileはlibfltkのリンクを忘れないように。

CC = g++
INCDIR = -I. -I/usr/include/
LIBDIR = -L. 

LIBS   = -lfltk
CFLAGS = -O2 -Wall

TARGET = a.out
SRCS   = fl.cpp
OBJS   = $(SRCS:.cpp=.o)

all: $(TARGET)

$(TARGET): $(OBJS) 
	$(CC) -o $@ $(OBJS) $(LIBDIR) $(LIBS) 

.cpp.o:
	$(CC) $(CFLAGS) $(INCDIR) -c $<

clean:
	@rm -f *.o $(TARGET)