LoginSignup
1
0

【42 東京】Linux環境でminilibxを使用する

Last updated at Posted at 2023-11-16

校舎PCなら下記コマンドで簡単にminilibxが使えます。

cc  main.c -Imlx -lmlx -framework OpenGL -framework AppKit

一方で私用PCだと色々と準備が必要でした。
手順をまとめたので、ご参考になれば幸いです。

実行環境
・ VirtualBox 7.0
・ CentOS 7

1. 関連パッケージ のインストール

RedHat系
sudo yum install -y gcc make xorg-x11-server-devel libXext-devel libbsd-devel
Debian系
sudo apt install -y gcc make xorg libxext-dev libbsd-dev

2. minilibx のインストール

intraの課題ページから”minilibx-linux.tgz”をインストールして展開する
minilibxをmakeしてアーカイブを作成する
※"libmlx_linux.a"が作成される

3. ファイルの格納

minilibxのヘッダーとアーカイブを下記ディレクトリに格納する
/usr/local/include/mlx.h
※mlx.hをincludeディレクトリに格納
/usr/local/lib/libmlx_linux.a
※libmlx_linux.aをlibディレクトリに格納

4. main関数の実装

main.c
#include <stdio.h>
#include <X11/X.h>
#include <X11/keysym.h>
#include "mlx.h"

int event_handler(int key, void *mlx)
{
 printf("called\n");
 return (0);
}

int main(void)
{
 void *mlx;
 void *mlx_win;

 mlx = mlx_init();
 mlx_win = mlx_new_window(mlx, 300, 300, "Hello World");
 mlx_hook(mlx_win, KeyPress, KeyPressMask, event_handler, mlx);
 mlx_loop(mlx);
}

5. makefileの作成

makefile
# minilibx_test
NAME		=	minilibx_test
SRCS		=	main.c
OBJS 		=	$(SRCS:.c=.o)
# Compiler
CC			=	cc
LIBX_FLAGS	=	-lmlx_Linux -lXext -lX11

# Rules
all:		$(NAME)

$(NAME):	$(OBJS)
			$(CC) $(OBJS) $(LIBX_FLAGS) -o $(NAME)

clean:
			$(RM) $(OBJS)

fclean:		clean
			$(RM) $(NAME)

re:			fclean all

.PHONY:		all clean fclean re

6. 動作確認

makeして実行ファイルを起動するとウィンドウが表示されます。
キーボードを叩く度に”called”とメッセージがターミナルに表示されれば、
minilibxの初期設定は成功です。お疲れ様でした。

minilibx_start.gif

7. 参考サイト

https://reactive.so/post/42-a-comprehensive-guide-to-so_long
https://harm-smits.github.io/42docs/libs/minilibx/getting_started.html

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0