SlideShare a Scribd company logo
1 of 106
Download to read offline
GNU Make, Autotools, 
CMake ⡆௓ 
Wen Liao
Disclaimer 
ᢞᙳ∦㈨ᩱⅭస⪅ᩚ⌮㈨ᩱཬಶேពぢ䠈ἄ᭷⥂ 
㐣ᄫㅽ☜ㄆ䠈ㄳㆫ⪅⮬⾜᩵㓃
┠ᶆ 
● ⡆௓GNU Make, Autotools, ࿴CMake 
○ Autotools࿴CMake㒊௷ᴟᗘ⡆௓
 ヨ⎔ቃ
Outline 
● GNU Make 
● Autotools 
● CMake 
● ཨ⪃㈨ᩱ 
● Q & A
஦ඛ‽ഛ 
● Ⅽ஢ᝍⓗ⏕άᖾ⚟⨾⁹䠈ㄳ☜ㄆ⦅㍴ჾᨭ᥼㢷 
♧✵ⓑᏐඖ࿴<tab>Ꮠඖ! 
geany: 
<tab> trailing space 
vim:
㜝᪊GNU Make 
● man make 
○ GNU make utility to maintain groups of programs 
○ ???
┤᥋┳౛Ꮚ 
ᛠ㯟⦅㆞?
⡆ႝ䠈gcc hello.c
ຍ☞䠈㏺ಶᛠ㯟⦅㆞?
GG! 㑏せຍinclude Path
㑣㯟ୖⓒಶ᷐᱌ᛠ㯟㎨䠛ᡴ฿Ṛ䠛
ᑙ᱌᷐᱌㔞኱⦅㆞ⓗၥ㢟 
● ᡃ⬟୙⬟ᡴ୍⾜ᣦ௧ᑵᖳᡃ⮬ື⦅㆞? 
● ᡃ⬟୙⬟ྈ⦅㆞᭦ື㐣ⓗ᷐᱌? 
○ ໟྵᨵ஢*.h᷐᱌ᑞ᠕*.c㒔ྍ௨⮬ື㔜⦅ 
● ྍ୙ྍ௨᭷ἄ᭷㟰άⓗ⦅㆞⤌ែ? 
○ タᐃdebug mode㑏᫝release mode 
○ タᐃ⦅㆞ჾ㑅㡯 
○ Compile timeᣦᐃᕧ㞟 
■ -DMY_VAR=1 
○ ...
Yes You Can!
㜝᪊GNU Make 
● man make 
○ The purpose of the make utility is to 
determine automatically which pieces of a 
large program need to be recompiled, 
and issue the commands to recompile 
them. 
○ ⓑヰ: ༠ຓ⦅㆞ⓗ᫬ೃỴᐃ 
■ 㑣㒊௷せ㔜⦅ 
■ ᣦᐃ㔜᪂⦅㆞ⓗືస
Hello Makefile 
target prerequisites 
recipe ୍ᐃせ<tab>㛤㢌! 
௨ୗ᝟ἣ᭳ᇳ⾜recipe 
● ᪂ቔ䠖target᷐᱌୙Ꮡᅾ 
○ ㏻ᖖtarget᫝୍ಶ᷐᱌䠈ణ᫝㏺୙᫝ᚲせᲄ௳ 
● ᭦᪂䠖prerequisites᷐᱌᭦ື᫬㛫ẚtarget᷐ 
᱌㑏せ᪂
ㄡ說Makefile୍ᐃせ⦅㆞᷐᱌? 
target prerequisites 
୍㛤ጞྈ᭷Makefile䠈ୗmakeฟ⌧㘒ㄗ說↓ἲ產⏕dep_file 
產⏕dep_fileᚋ᭳ᇳ⾜@echo Test 
產⏕test_fileᑵ୙ᇳ⾜@echo Test 
᭦᪂dep_file ᭦ື᫬㛫ᚋ᭳ᇳ⾜@echo Test 
recipe
ᶞ≪target 
● ➨୍ಶtarget✃Ⅽdefault target䠈ஓ᫝makeⓗ㐍ධ㯶䚹 
● @⾲♧୙せᢕᣦ௧༳ฟ䠈ྍ௨⦎⩦ᢕ௚ᣡᤶ┳┳䚹 
● $@ᒎ㛤ᚋ᫝targetⓗྡ✃
ㄳẚᑞୖ㡫䠈やᐹ㡰ᗎ䟿
ㆰᩝ 
● タᐃ 
○ VAR = VAL 
○ VAR := VAL 
○ VAL ?= VAL 
○ VAR += VAL 
○ ඼௚ᡃ୙᠐ⓗ 
● タᐃ᫬ᶵ 
○ ᷐᱌䠈㏻ᖖᑵ᫝Makefile內 
○ make ࿨௧ⓗཨᩝ 
○ ⎔ቃㆰᩝ 
● ྲྀ值 
○ $(VAR)
VAR = VAL 
VAR := VAL 
VAL ?= VAL 
VAR += VAL
୕ᑠ䠛
ㆰᩝタᐃ: 㐃ືᆺ = 
VAR1 ➨୍ḟタᐃ 
VAR2 ⓗ值࿴VAR1┦ྠ 
༳ฟVAR2ⓗ內ᐜ 
VAR1 ➨஧ḟタᐃ 
෌༳ฟVAR2ⓗ內ᐜ
ඳḟVAR2ⓗ內ᐜ䠈᭳㞉VAR1ᨵㆰ
ㆰᩝタᐃ䠖❧้⏕ᩀᆺ := 
ྈᨵ㏺⾜䠈ᢕ = ᨵᡂ :=
ㆰᩝタᐃ: 㡸タᆺ ?=
ㆰᩝタᐃ䠖ຍ☞ᆺ +=
ᑠ⤖ 
タᐃ ⌮ゎ᪉ᘧ 
VAR = VAL 㐃ືᙧ 
VAR := VAL ❧༶⏕ᩀᙧ 
VAL ?= VAL 㡸タᙧ 
VAR += VAL ຍ☞ᙧ 
඼௚ᡃ୙᠐ⓗ ୙᠐ⓗ୙▱㐨ᛠ㯟ゎ㔚
內ᘓㆰᩝ (⠇㗴) 
ྡ✃ ព⩏ 
$@ targetྡ✃ 
$^ ᡤ᭷ⓗprerequisitesྡ✃ 
$< ➨୍ಶprerequisiteྡ✃ 
⏝㏵அ୍䠖 
target: dep1.c inc.h test.h 
<tab> gcc -o $@ $< 
$? ẚtarget㑏᪂ⓗprerequisitesྡ✃
⠊౛ 
タᐃせ產⏕ⓗᇳ⾜᷐ 
タᐃせ⦅㆞ⓗ⛬ᘧ᷐ 
⦅㆞ཨᩝ 
ᒎ㛤ㆰᩝ䠈౫ᒎ㛤ⓗ 
ㆰᩝ⦅㆞᷐᱌ 
Ύ㝖產⏕ⓗ᷐᱌つ๎
┠㗴ୗ᭷ཎጞ᷐࿴Makefile 
⦅㆞᭷ᒎ㛤ㆰᩝ୪ᣦᐃᑞ 
᠕᷐᱌┠㗴ୗ᭷ཎጞ᷐࿴ 
Makefile 
ᇳ⾜᷐ᕬ⥂產⏕ 
Ύ㝖ᇳ⾜᷐୪㔜᪂⦅㆞
ᲄ௳ุ᪇⠊౛ 
LOGNAME᫝⎔ቃㆰᩝ!
LOGNAME᫝⎔ቃㆰᩝ! 
ே⫗タᐃLOGNAME內ᐜ
function⠇㗴 
● ㄒἲ 
○ $(ภᩝྡ✃ ཨᩝ) 
ศ㢮 ภᩝྡ✃ 說᫂ ⠊౛ (ㄳ㈞฿Makefileᐿ !) 
イᜥ 
$(waring イᜥ) 㢷♧㆙࿌イᜥ௨ཬᑞ᠕ⓗ⾜⹰ $(warning Your gcc version is too old) 
$(error イᜥ) 㢷♧㘒ㄗイᜥ䚸ᑞ᠕ⓗ⾜⹰ᚋ⤖᮰ 
make 
conf=my_file 
$(error file $(conf) not found) 
Ꮠ୵ 
⹦⌮ 
$(subst from,to,⹦⌮ᩥᏐ) Ꮠ୵᭰᥮,ᚋ㠃✵ⓑⅭཨᩝⓗ୍㒊௷ $(warning $(subst .c,.o,test.c hello.c)) 
$(patsubst pattern,᭰᥮ᩥᏐ,⹦⌮ᩥᏐ) patternᏐ୵᭰᥮,ᚋ㠃✵ⓑⅭཨᩝⓗ୍ 
㒊௷䚹%௦⾲௵ព㛗ᗘⓗ௵ពᏐඖ䚹 
$(warning $(patsubst t%.c,a%.o,test.c 
hello.c)) 
඼௚ $(shell ࿨௧) ᇳ⾜࿨௧䠈ᅇബᩥᏐ⤖ᯝ $(warning $(shell ls /))
㐃⧰ᢏ 
● OBJS=$(patsubst %.c,%.o,$(shell ls *.c))
ᖖぢ㘒ㄗ䠖ẗಶrecipe ᇳ⾜≪ែ୙ᘏ⧰ 
㐀ᡂⓗᝒ๻ 
⠊౛䠖ᘓ❧୍ಶ┠㗴䠈㐍ධヱ┠㗴๓ᚋ 
༳ฟ┠๓ᕤస┠㗴☜ㄆษ᥮┠㗴ᡂຌ
㛤⊼䠈ἄ᭷ษ᥮฿test┠㗴
✽Ꮿ┳ⓗ䠈ྍ௨┳฿make⹦⌮recipeⓗ 
᪉ᘧ᫝產⏕᪂ⓗprocess䠈ᇳ⾜recipe䠈 
↛ᚋ⤖᮰ヱprocess 
$ strace -f make 
vfork(Process 8949 attached (waiting for parent) 
Process 8949 resumed (parent 8947 ready) 
) = 8949 
[pid 8949] execve("/bin/mkdir", ["mkdir", "-p", "test"], 
[/* 42 vars */]) = 0 
<... wait4 resumed> [{WIFEXITED(s) && 
WEXITSTATUS(s) == 0}], 0, NULL) = 8949 
--- SIGCHLD (Child exited) @ 0 (0) ---
ᑠ⤖ 
● GNU make: ༠ຓ⦅㆞ⓗ᫬ೃỴᐃ 
○ 㑣㒊௷せ㔜⦅ 
○ ᣦᐃ㔜᪂⦅㆞ⓗືస 
● ᡤ௨ᑃMakefile䠈୺せᥥ㏙ 
○ 產⏕᷐᱌࿴ཎጞ᷐ⓗ㜝⫃ᛶ 
○ ␜㏺ல᷐᱌᭦ື᫬㛫㜝ಀ᭷ㆰ໬ⓗ᫬ೃ䠈ヱ 
೴ொ㯟஦?
⿵඘1: ἄ᭷Makefileⓗmake 
┠๓┠㗴ἄ᭷Makefile 
↷ᶏmakeქქ 
↷ᶏmake++
Implicit Rules 
୕ᑠ䠛
make -p 
CPP㏺㑔ྍ୙᫝C++䠈᭷ 
⯆㊃man cpp 
㑏グᚓㆰᩝႫ䠛
make -p (᥋㜝䠅 
make᭷內ᘓ㡸タⓗ⹦⌮つ๎䠈ㄳ࿴ୖ㡫ㆰᩝ௨ཬ๓㠃ⓗㄒ 
ἲᑞ↷
⿵඘2: .PHONY 
⠊౛Makefile䠈ໟྵ產⏕binary࿴Ύ㝖binary
⋵┳┳ 
Ύ㝖binary 
產⏕᪂᷐䠈ྡ✃Ⅽclean 
᷐᱌cleanᏑᅾ䠈↓ἲΎ㝖binary 
ᚲ㡲฽㝖᷐᱌cleanᡯ⬟ᇳ⾜target
ศᯒ 
● recipe ⓗᇳ⾜࿴target௨ཬprerequisites᷐᱌ 
᫬㛫㈨イ᭷㜝 
● cleanⓗ┠ⓗ୪୙᫝せ產⏕clean᷐᱌䠈ஓᑵ᫝ 
說targetᇳ⾜recipe࿴target᫝ྰⅭ᷐᱌↓㜝
.PHONY 
● ࿴᷐᱌↓㜝ⓗtarget 
● ⏝ἲ 
.PHONY: ௨✵ⓑ㝸㛤ⓗTARGETྡ✃ 
● ⠊౛ 
.PHONY: clean install
ಟṇ 
.PHONYᅾ㏺㑔
┳┳ᩀᯝ
ᘏఙ㢟ᮦ/ᅇᐙຌㄢ 
● ዴఱ⮬ື㐍ධ୙ྠ┠㗴Make? 
● ዴఱ⮬ື產⏕C source᷐࿴Header᷐᱌rule? 
○ hello.c includes f1.h, f2.h䠈ඳኳᚋཪຍධf3.h䚹ᡭືᨵ 
ᚇ⣼䚹 
● ᭷ἄ᭷㎨ἲᢕᡤ᭷ⓗタᐃᨺᅾ᷐᱌內⤥ 
Makefile include?
๦ୗᑵ᫝⣽⠇䠈ㄳ⮬⾜ 
┳᭩䠈つ๸タィ⮬ᕫⓗ 
ᐿ⩦ㄢ䚹
Outline 
● GNU Make 
● Autotools 
● CMake 
● ཨ⪃㈨ᩱ 
● Q & A
」⩦䠖GNU Makeᑠ⤖ 
● GNU make: ༠ຓ⦅㆞ⓗ᫬ೃỴᐃ 
○ 㑣㒊௷せ㔜⦅ 
○ ᣦᐃ㔜᪂⦅㆞ⓗືస 
● ᡤ௨ᑃMakefile䠈୺せᥥ㏙ 
○ 產⏕᷐᱌࿴ཎጞ᷐ⓗ㜝⫃ᛶ 
○ ␜㏺ல᷐᱌᭦ື᫬㛫㜝ಀ᭷ㆰ໬ⓗ᫬ೃ䠈ヱ 
೴ொ㯟஦?
㑣㯟᭳ொ㯟㑏せ᭷autotools 
● ㊬ᖹྎⓗၥ㢟 
○ memset v.s. bzero 
○ ㊰ᚏ䚸᷐᱌୙ྠ 
○ system call୙ྠ 
● ྠᖹྎ 
○ ภᘧᗜ∧ᮏ୙ྠ䠈prototypeྍ⬟୙ྠ 
● ┦౫ᛶၥ㢟
autotools 
● autotoolⓗ┠ⓗᑵ᫝產⏕ᖹྎୖྍ௨⦅㆞ⓗ⎔ 
ቃ 
● Ⅽ஢㐩฿㏺ᶏⓗ┠ⓗ䠈⣔⤫㟂せ೴฿ୗ㠃ⓗຌ 
⬟ 
○ ᷙ查ᖹྎ⎔ቃ 
○ 產⏕Makefile
ὶ⛬ 
http://en.wikipedia.org/wiki/GNU_build_system#mediaviewer/File:Autoconf-automake-process.svg
http://en.wikipedia.org/wiki/GNU_build_system#mediaviewer/File:Autoconf-automake-process.svg
http://en.wikipedia.org/wiki/GNU_build_system#mediaviewer/File:Autoconf-automake-process.svg
ᚇ」㞯䠛ཱྀ㢌ㅮᑵ᫝ 
1. ⮬ᖿᡈ㊝ᕤලᚋ產⏕᭦ືconfigure. 
ac䠈࿴ᑃMakefile.am 
2. ㊝ᕤල產⏕configure, Makefile.in࿴ 
config.in 
3. ㊝configure䠈產⏕Makefile࿴config.h 
4. make; make install
㑏୙᠐䠛౗┳⠊౛ 
఼せᑃⓗᮾす
autoreconfᖳ఼࿧ྉ┦㜝ᕤ 
ලዴaclocal, autoconf, 
automake➼
產⏕ฟ౗ⓗ᷐᱌
產⏕ฟ౗ⓗ᷐᱌
configure.ac 
# せồ∧ᮏ 
AC_PREREQ([2.68]) 
# ዓ௳㈨イ 
AC_INIT([Test_Autotools], [0], [test]) 
# ⤥Automake㈨イ䠈foreign⾲♧୙⏝GNUᶆ‽ 
# ஓᑵ᫝୙㟂せchangelog, AUTHORS➼᷐᱌ 
AM_INIT_AUTOMAKE([foreign -Wall -Werror])
configure.ac 
# config᷐᱌ 
AC_CONFIG_HEADERS([config.h]) 
# ᮏḟdemo౑⏝ static library 
AC_PROG_RANLIB 
# Makefile ㊰ᚏ 
AC_CONFIG_FILES([Makefile src/Makefile 
libs/Makefile])
configure.ac 
# ᦏᑜCC ⦅㆞ჾ 
AC_PROG_CC 
# ⤖᮰config䠈㛤ጞ產⏕┦㜝᷐᱌ 
AC_OUTPUT
Makfile.am 
SUBDIRS = libs src
libs/Makefile.am 
# ᣦᐃinclude㊰ᚏ 
AM_CFLAGS = -I../include 
# 產⏕liba.a ࿴libb.b 
# lib_௦⾲Ᏻ⿶᫬せᨺᅾ$(prefix)/lib୰ 
# 㡸タprefix=/usr/local 
lib_LIBRARIES = liba.a libb.a
libs/Makefile.am 
# 產⏕liba.aⓗ┦౫᷐᱌ 
liba_a_SOURCES = liba.c liba.h 
# 產⏕libb.aⓗ┦౫᷐᱌ 
libb_a_SOURCES = libb.c libb.h 
# Ᏻ⿶฿$(prefix)/includeⓗ᷐᱌ 
include_HEADERS = ../include/liba.h .. 
/include/libb.h
src/Makefile.am 
# ᣦᐃlinkီலlibrary 
LDADD = ../libs/liba.a ../libs/libb.a 
# ᣦᐃinclude㊰ᚏ 
AM_CFLAGS = -I../include
src/Makefile.am 
# Ᏻ⿶฿$(prefix)/bin 
bin_PROGRAMS = test 
# 產⏕ⓗ᷐᱌┦౫ⓗ᷐᱌ 
test_SOURCES = test.c
● configure 
● make 
● make install 
● make dist # ⮬ືᖳ఼ᡴໟtarball
ᑠ⤖ 
● ౑⏝autotools㟂せ⮬ᕫᑃ 
○ configure.ac 
○ Makefile.am 
● ୖ㠃ⓗ⠊౛ᴟᗘ⡆␎
ᘏఙ㢟ᮦ/ᅇᐙຌㄢ 
● ዴఱ產⏕shared library? 
● ᫝ྰ᭷᭦⫄᫂ⓗlibrary產⏕᪉ᘧ䠛 
○ hint: libtools
๦ୗᑵ᫝⣽⠇䠈ㄳ⮬⾜ 
┳᭩䠈つ๸タィ⮬ᕫⓗ 
ᐿ⩦ㄢ䚹
Outline 
● GNU Make 
● Autotools 
● CMake 
● ཨ⪃㈨ᩱ 
● Q & A
㜝᪊CMake 
CMake᫝1999ᖺ᥎ฟⓗ㛤※⮬⏤㌾㧓ィ␓䠈┠ⓗ 
᫝ᥦ౪୙ྠᖹྎஅ㛫ඹྠⓗ⦅㆞⎔ቃ䚹 
≉ᛶ: 
● ᨭ᥼୙ྠᖹྎ 
● ྍ௨ᑘBuild࿴ཎᮏ⛬ᘧ☞ศ㛤 
○ out-place build 
○ in-place build 
● ᨭ᥼cacheຍᛌ⦅㆞㏿ᗘ
ὶ⛬ 
● ᧝ᑃCMakeLists.txt 
● ౑⏝⪅ᇳ⾜cmake 
○ 產⏕ヱᖹྎᑞ᠕ⓗ⦅㆞⎔ቃ᷐᱌ዴMakefile➼ 
● ౑⏝⪅ᇳ⾜ᖹྎୖⓗ⦅㆞᪉ἲ 
○ ዴmake 
● ౑⏝⪅ᇳ⾜cmake installᏳ⿶㌾㧓䚹
⠊౛ 
఼せᑃⓗᮾす
CMakeLists.txt 
# ∧ᮏ㟂ồ 
cmake_minimum_required(VERSION 2.8) 
# ఼ⓗProjectྡ✃ 
project(testcmake)
CMakeLists.txt 
# タᐃㆰᩝ 
set(SRC_DIR src) 
set(LIB_DIR libs) 
set(INC_DIR include) 
# Compile flags 
set(CMAKE_C_FLAGS "-Wall -Werror")
CMakeLists.txt 
# ᣦ௧include┠㗴 
include_directories(${INC_DIR}) 
# ࿌ッCMakeせཤୗิⓗ┠㗴⦅㆞ 
add_subdirectory(${SRC_DIR}) 
add_subdirectory(${LIB_DIR}) 
add_subdirectory(${INC_DIR})
libs/CMakeLists.txt 
# タᐃㆰᩝ䠈ᣦᐃlibrary┦౫᪊ီಶ᷐᱌ 
set(liba_SRCS liba.c) 
set(libb_SRCS libb.c) 
# ᣦᐃ⦅㆞ᆺᘧⅭshared library 
add_library(a SHARED ${liba_SRCS}) 
add_library(b SHARED ${libb_SRCS})
libs/CMakeLists.txt 
# Ᏻ⿶᱁ᘧ 
# install(TARGETS ภᘧᗜྡ✃ LIBRARY 
# DESTINATION Ᏻ⿶┠㗴㊰ᚏ) 
install(TARGETS a b LIBRARY 
DESTINATION lib)
src/CMakeLists.txt 
# タᐃㆰᩝ 
set(test_SRCS test.c) 
# 產⏕ᇳ⾜᷐ 
add_executable(${PROJECT_NAME} 
${test_SRCS}) 
# ᣦ௧linkภᘧᗜ 
target_link_libraries(${PROJECT_NAME} a b)
src/CMakeLists.txt 
# Ᏻ⿶᱁ᘧ 
# install(TARGETS ᇳ⾜᷐ྡ✃ 
# DESTINATION Ᏻ⿶┠㗴㊰ᚏ) 
install(TARGETS ${PROJECT_NAME} 
DESTINATION bin)
include/CMakeLists.txt 
# install(FILES Header᷐ྡ✃ 
# DESTINATION Ᏻ⿶┠㗴㊰ᚏ) 
install(FILES liba.h libb.h 
DESTINATION include)
out-place build
ᑠ⤖ 
● ఼せᑃCMakeLists.txt䠈ᣦᐃせ㐍ධီல┠㗴 
⦅㆞䠈ᡈ᫝┦㜝ⓗ᷐᱌௨ཬ㡸ᮇ⦅㆞࿴Ᏻ⿶ⓗ 
ᆺែ 
● ୖ㠃ⓗ⠊౛ᴟᗘ⡆␎
ᘏఙ㢟ᮦ/ᅇᐙຌㄢ 
● ヲ⣽ㄒἲ 
○ ㆰᩝタᐃ 
○ ᲄ௳タᐃ 
○ ᕧ㞟࿴ภᩝ 
● ᡴໟ᪉ᘧ
๦ୗᑵ᫝⣽⠇䠈ㄳ⮬⾜ 
┳᭩䠈つ๸タィ⮬ᕫⓗ 
ᐿ⩦ㄢ䚹
Outline 
● GNU Make 
● Autotools 
● CMake 
● ཨ⪃㈨ᩱ 
● Q & A
ཨ⪃㈨ᩱ 
● GNU Makeᡭ෉ 
○ http://www.gnu.org/software/make/manual/make.html 
● GNU Make ᛌ㏿ཨ⪃ 
○ http://www.gnu.org/software/make/manual/make. 
html#Quick-Reference 
● GNU Automakeᡭ෉ 
○ http://www.gnu. 
org/software/automake/manual/automake.html 
● Alexandre Duret Lutz: Autotools Tutorial (኱ 
᥎) 
○ https://www.lrde.epita.fr/~adl/autotools.html
ཨ⪃㈨ᩱ 
● CMake Wiki 
○ http://www.cmake.org/Wiki/CMake 
● CMake-tutorial (኱᥎) 
○ https://github.com/TheErk/CMake-tutorial
Outline 
● GNU Make 
● Autotools 
● CMake 
● ཨ⪃㈨ᩱ 
● Q & A

More Related Content

What's hot

Let's trace Linux Lernel with KGDB @ COSCUP 2021
Let's trace Linux Lernel with KGDB @ COSCUP 2021Let's trace Linux Lernel with KGDB @ COSCUP 2021
Let's trace Linux Lernel with KGDB @ COSCUP 2021Jian-Hong Pan
 
linux device driver
linux device driverlinux device driver
linux device driverRahul Batra
 
makefiles tutorial
makefiles tutorialmakefiles tutorial
makefiles tutorialvsubhashini
 
Diving into SWUpdate: adding new platform support in 30minutes with Yocto/OE !
Diving into SWUpdate: adding new platform support in 30minutes with Yocto/OE !Diving into SWUpdate: adding new platform support in 30minutes with Yocto/OE !
Diving into SWUpdate: adding new platform support in 30minutes with Yocto/OE !Pierre-jean Texier
 
Q2.12: Debugging with GDB
Q2.12: Debugging with GDBQ2.12: Debugging with GDB
Q2.12: Debugging with GDBLinaro
 
U-Boot Porting on New Hardware
U-Boot Porting on New HardwareU-Boot Porting on New Hardware
U-Boot Porting on New HardwareRuggedBoardGroup
 
Yocto Project introduction
Yocto Project introductionYocto Project introduction
Yocto Project introductionYi-Hsiu Hsu
 
Luca Ceresoli - Buildroot vs Yocto: Differences for Your Daily Job
Luca Ceresoli - Buildroot vs Yocto: Differences for Your Daily JobLuca Ceresoli - Buildroot vs Yocto: Differences for Your Daily Job
Luca Ceresoli - Buildroot vs Yocto: Differences for Your Daily Joblinuxlab_conf
 
Yocto project and open embedded training
Yocto project and open embedded trainingYocto project and open embedded training
Yocto project and open embedded trainingH Ming
 
Logical Volume Manager. An Introduction
Logical Volume Manager. An IntroductionLogical Volume Manager. An Introduction
Logical Volume Manager. An IntroductionJuan A. Suárez Romero
 
Splash screen for Embedded Linux 101: How to customize your boot sequence
 Splash screen for Embedded Linux 101: How to customize your boot sequence Splash screen for Embedded Linux 101: How to customize your boot sequence
Splash screen for Embedded Linux 101: How to customize your boot sequencePierre-jean Texier
 
Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)RuggedBoardGroup
 
eBPF Trace from Kernel to Userspace
eBPF Trace from Kernel to UserspaceeBPF Trace from Kernel to Userspace
eBPF Trace from Kernel to UserspaceSUSE Labs Taipei
 
Staring into the eBPF Abyss
Staring into the eBPF AbyssStaring into the eBPF Abyss
Staring into the eBPF AbyssSasha Goldshtein
 

What's hot (20)

Let's trace Linux Lernel with KGDB @ COSCUP 2021
Let's trace Linux Lernel with KGDB @ COSCUP 2021Let's trace Linux Lernel with KGDB @ COSCUP 2021
Let's trace Linux Lernel with KGDB @ COSCUP 2021
 
linux device driver
linux device driverlinux device driver
linux device driver
 
makefiles tutorial
makefiles tutorialmakefiles tutorial
makefiles tutorial
 
Linux Device Tree
Linux Device TreeLinux Device Tree
Linux Device Tree
 
Linux Commands
Linux CommandsLinux Commands
Linux Commands
 
Diving into SWUpdate: adding new platform support in 30minutes with Yocto/OE !
Diving into SWUpdate: adding new platform support in 30minutes with Yocto/OE !Diving into SWUpdate: adding new platform support in 30minutes with Yocto/OE !
Diving into SWUpdate: adding new platform support in 30minutes with Yocto/OE !
 
Linux systems - Linux Commands and Shell Scripting
Linux systems - Linux Commands and Shell ScriptingLinux systems - Linux Commands and Shell Scripting
Linux systems - Linux Commands and Shell Scripting
 
Linux commands
Linux commandsLinux commands
Linux commands
 
Introduction to Makefile
Introduction to MakefileIntroduction to Makefile
Introduction to Makefile
 
Q2.12: Debugging with GDB
Q2.12: Debugging with GDBQ2.12: Debugging with GDB
Q2.12: Debugging with GDB
 
U-Boot Porting on New Hardware
U-Boot Porting on New HardwareU-Boot Porting on New Hardware
U-Boot Porting on New Hardware
 
Yocto Project introduction
Yocto Project introductionYocto Project introduction
Yocto Project introduction
 
Luca Ceresoli - Buildroot vs Yocto: Differences for Your Daily Job
Luca Ceresoli - Buildroot vs Yocto: Differences for Your Daily JobLuca Ceresoli - Buildroot vs Yocto: Differences for Your Daily Job
Luca Ceresoli - Buildroot vs Yocto: Differences for Your Daily Job
 
Yocto project and open embedded training
Yocto project and open embedded trainingYocto project and open embedded training
Yocto project and open embedded training
 
Logical Volume Manager. An Introduction
Logical Volume Manager. An IntroductionLogical Volume Manager. An Introduction
Logical Volume Manager. An Introduction
 
Toolchain
ToolchainToolchain
Toolchain
 
Splash screen for Embedded Linux 101: How to customize your boot sequence
 Splash screen for Embedded Linux 101: How to customize your boot sequence Splash screen for Embedded Linux 101: How to customize your boot sequence
Splash screen for Embedded Linux 101: How to customize your boot sequence
 
Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)
 
eBPF Trace from Kernel to Userspace
eBPF Trace from Kernel to UserspaceeBPF Trace from Kernel to Userspace
eBPF Trace from Kernel to Userspace
 
Staring into the eBPF Abyss
Staring into the eBPF AbyssStaring into the eBPF Abyss
Staring into the eBPF Abyss
 

Similar to GNU Make, Autotools, CMake 簡介

CEDEC2014 Live Coding in C++
CEDEC2014 Live Coding in C++CEDEC2014 Live Coding in C++
CEDEC2014 Live Coding in C++Seiya Ishibashi
 
Coding with Vim
Coding with VimCoding with Vim
Coding with VimEnzo Wang
 
GDG DevFest Kyoto 2014 これからのGoの話をしよう
GDG DevFest Kyoto 2014 これからのGoの話をしようGDG DevFest Kyoto 2014 これからのGoの話をしよう
GDG DevFest Kyoto 2014 これからのGoの話をしようSatoshi Noda
 
Introduction of unit test on android kernel
Introduction of unit test on android kernelIntroduction of unit test on android kernel
Introduction of unit test on android kernelJohnson Chou
 
Compiler design notes phases of compiler
Compiler design notes phases of compilerCompiler design notes phases of compiler
Compiler design notes phases of compilerovidlivi91
 
Tomáš Čorej: Configuration management & CFEngine3
Tomáš Čorej: Configuration management & CFEngine3Tomáš Čorej: Configuration management & CFEngine3
Tomáš Čorej: Configuration management & CFEngine3Jano Suchal
 
Practical SystemTAP basics: Perl memory profiling
Practical SystemTAP basics: Perl memory profilingPractical SystemTAP basics: Perl memory profiling
Practical SystemTAP basics: Perl memory profilingLubomir Rintel
 
Unix shell talk - RIT SSE
Unix shell talk - RIT SSEUnix shell talk - RIT SSE
Unix shell talk - RIT SSEMatt Mokary
 
Getting started with open mobile development on the Openmoko platform
Getting started with open mobile development on the Openmoko platformGetting started with open mobile development on the Openmoko platform
Getting started with open mobile development on the Openmoko platformJean-Michel Bouffard
 
Basicsof c make and git for a hello qt application
Basicsof c make and git for a hello qt applicationBasicsof c make and git for a hello qt application
Basicsof c make and git for a hello qt applicationDinesh Manajipet
 
Not Your Fathers C - C Application Development In 2016
Not Your Fathers C - C Application Development In 2016Not Your Fathers C - C Application Development In 2016
Not Your Fathers C - C Application Development In 2016maiktoepfer
 
Trace kernel code tips
Trace kernel code tipsTrace kernel code tips
Trace kernel code tipsViller Hsiao
 
TinyMCE Editor - Rhythmyx: Powerful Website Management Platform
TinyMCE Editor - Rhythmyx: Powerful Website Management PlatformTinyMCE Editor - Rhythmyx: Powerful Website Management Platform
TinyMCE Editor - Rhythmyx: Powerful Website Management PlatformPercussion Software
 
Unix is my IDE
Unix is my IDEUnix is my IDE
Unix is my IDEtkramar
 
WordPress Plugin Development 201
WordPress Plugin Development 201WordPress Plugin Development 201
WordPress Plugin Development 201ylefebvre
 
Types - slice, map, new, make, struct - Gopherlabs
Types - slice, map, new, make, struct - Gopherlabs Types - slice, map, new, make, struct - Gopherlabs
Types - slice, map, new, make, struct - Gopherlabs sangam biradar
 
Andriy Shalaenko - GO security tips
Andriy Shalaenko - GO security tipsAndriy Shalaenko - GO security tips
Andriy Shalaenko - GO security tipsOWASP Kyiv
 

Similar to GNU Make, Autotools, CMake 簡介 (20)

CEDEC2014 Live Coding in C++
CEDEC2014 Live Coding in C++CEDEC2014 Live Coding in C++
CEDEC2014 Live Coding in C++
 
Coding with Vim
Coding with VimCoding with Vim
Coding with Vim
 
GDG DevFest Kyoto 2014 これからのGoの話をしよう
GDG DevFest Kyoto 2014 これからのGoの話をしようGDG DevFest Kyoto 2014 これからのGoの話をしよう
GDG DevFest Kyoto 2014 これからのGoの話をしよう
 
Introduction of unit test on android kernel
Introduction of unit test on android kernelIntroduction of unit test on android kernel
Introduction of unit test on android kernel
 
Compiler design notes phases of compiler
Compiler design notes phases of compilerCompiler design notes phases of compiler
Compiler design notes phases of compiler
 
Tomáš Čorej: Configuration management & CFEngine3
Tomáš Čorej: Configuration management & CFEngine3Tomáš Čorej: Configuration management & CFEngine3
Tomáš Čorej: Configuration management & CFEngine3
 
Kick my mouse away
Kick my mouse awayKick my mouse away
Kick my mouse away
 
Practical SystemTAP basics: Perl memory profiling
Practical SystemTAP basics: Perl memory profilingPractical SystemTAP basics: Perl memory profiling
Practical SystemTAP basics: Perl memory profiling
 
Unix shell talk - RIT SSE
Unix shell talk - RIT SSEUnix shell talk - RIT SSE
Unix shell talk - RIT SSE
 
Getting started with open mobile development on the Openmoko platform
Getting started with open mobile development on the Openmoko platformGetting started with open mobile development on the Openmoko platform
Getting started with open mobile development on the Openmoko platform
 
Basicsof c make and git for a hello qt application
Basicsof c make and git for a hello qt applicationBasicsof c make and git for a hello qt application
Basicsof c make and git for a hello qt application
 
Not Your Fathers C - C Application Development In 2016
Not Your Fathers C - C Application Development In 2016Not Your Fathers C - C Application Development In 2016
Not Your Fathers C - C Application Development In 2016
 
Trace kernel code tips
Trace kernel code tipsTrace kernel code tips
Trace kernel code tips
 
Autotools
AutotoolsAutotools
Autotools
 
Go. Why it goes
Go. Why it goesGo. Why it goes
Go. Why it goes
 
TinyMCE Editor - Rhythmyx: Powerful Website Management Platform
TinyMCE Editor - Rhythmyx: Powerful Website Management PlatformTinyMCE Editor - Rhythmyx: Powerful Website Management Platform
TinyMCE Editor - Rhythmyx: Powerful Website Management Platform
 
Unix is my IDE
Unix is my IDEUnix is my IDE
Unix is my IDE
 
WordPress Plugin Development 201
WordPress Plugin Development 201WordPress Plugin Development 201
WordPress Plugin Development 201
 
Types - slice, map, new, make, struct - Gopherlabs
Types - slice, map, new, make, struct - Gopherlabs Types - slice, map, new, make, struct - Gopherlabs
Types - slice, map, new, make, struct - Gopherlabs
 
Andriy Shalaenko - GO security tips
Andriy Shalaenko - GO security tipsAndriy Shalaenko - GO security tips
Andriy Shalaenko - GO security tips
 

More from Wen Liao

Hello world 的一生
Hello world 的一生Hello world 的一生
Hello world 的一生Wen Liao
 
Notes on oracle solaris 11.3 linkers and libraries guide chapter one
Notes on oracle solaris 11.3 linkers  and libraries guide  chapter oneNotes on oracle solaris 11.3 linkers  and libraries guide  chapter one
Notes on oracle solaris 11.3 linkers and libraries guide chapter oneWen Liao
 
開放街圖 自助旅行的好幫手
開放街圖   自助旅行的好幫手開放街圖   自助旅行的好幫手
開放街圖 自助旅行的好幫手Wen Liao
 
GNU AS簡介
GNU AS簡介GNU AS簡介
GNU AS簡介Wen Liao
 
UPnP 1.0 簡介
UPnP 1.0 簡介UPnP 1.0 簡介
UPnP 1.0 簡介Wen Liao
 
故事:自由軟體和 Richard Stallman
故事:自由軟體和 Richard Stallman故事:自由軟體和 Richard Stallman
故事:自由軟體和 Richard StallmanWen Liao
 
Hello world在那邊?背景說明
Hello world在那邊?背景說明Hello world在那邊?背景說明
Hello world在那邊?背景說明Wen Liao
 
A successful git branching model 導讀
A successful git branching model 導讀A successful git branching model 導讀
A successful git branching model 導讀Wen Liao
 
GNU ld的linker script簡介
GNU ld的linker script簡介GNU ld的linker script簡介
GNU ld的linker script簡介Wen Liao
 
Trace 程式碼之皮
Trace 程式碼之皮Trace 程式碼之皮
Trace 程式碼之皮Wen Liao
 
淺談Debian套件打包
淺談Debian套件打包淺談Debian套件打包
淺談Debian套件打包Wen Liao
 
A Brief Introduction to Regular Expression with Python 2.7.3 Standard Library
A Brief Introduction to Regular Expression with Python 2.7.3 Standard LibraryA Brief Introduction to Regular Expression with Python 2.7.3 Standard Library
A Brief Introduction to Regular Expression with Python 2.7.3 Standard LibraryWen Liao
 
GNU gettext簡介 - 以C語言為範例
GNU gettext簡介 - 以C語言為範例GNU gettext簡介 - 以C語言為範例
GNU gettext簡介 - 以C語言為範例Wen Liao
 
Guide to GStreamer Application Development Manual: CH1 to CH10
Guide to GStreamer Application Development Manual: CH1 to CH10Guide to GStreamer Application Development Manual: CH1 to CH10
Guide to GStreamer Application Development Manual: CH1 to CH10Wen Liao
 
Testing in python 2.7.3
Testing in python 2.7.3Testing in python 2.7.3
Testing in python 2.7.3Wen Liao
 
從組裝軟體中談談軟體發展管理
從組裝軟體中談談軟體發展管理從組裝軟體中談談軟體發展管理
從組裝軟體中談談軟體發展管理Wen Liao
 
軟體組裝心得分享
軟體組裝心得分享軟體組裝心得分享
軟體組裝心得分享Wen Liao
 
Introduce to Linux command line
Introduce to Linux command lineIntroduce to Linux command line
Introduce to Linux command lineWen Liao
 

More from Wen Liao (18)

Hello world 的一生
Hello world 的一生Hello world 的一生
Hello world 的一生
 
Notes on oracle solaris 11.3 linkers and libraries guide chapter one
Notes on oracle solaris 11.3 linkers  and libraries guide  chapter oneNotes on oracle solaris 11.3 linkers  and libraries guide  chapter one
Notes on oracle solaris 11.3 linkers and libraries guide chapter one
 
開放街圖 自助旅行的好幫手
開放街圖   自助旅行的好幫手開放街圖   自助旅行的好幫手
開放街圖 自助旅行的好幫手
 
GNU AS簡介
GNU AS簡介GNU AS簡介
GNU AS簡介
 
UPnP 1.0 簡介
UPnP 1.0 簡介UPnP 1.0 簡介
UPnP 1.0 簡介
 
故事:自由軟體和 Richard Stallman
故事:自由軟體和 Richard Stallman故事:自由軟體和 Richard Stallman
故事:自由軟體和 Richard Stallman
 
Hello world在那邊?背景說明
Hello world在那邊?背景說明Hello world在那邊?背景說明
Hello world在那邊?背景說明
 
A successful git branching model 導讀
A successful git branching model 導讀A successful git branching model 導讀
A successful git branching model 導讀
 
GNU ld的linker script簡介
GNU ld的linker script簡介GNU ld的linker script簡介
GNU ld的linker script簡介
 
Trace 程式碼之皮
Trace 程式碼之皮Trace 程式碼之皮
Trace 程式碼之皮
 
淺談Debian套件打包
淺談Debian套件打包淺談Debian套件打包
淺談Debian套件打包
 
A Brief Introduction to Regular Expression with Python 2.7.3 Standard Library
A Brief Introduction to Regular Expression with Python 2.7.3 Standard LibraryA Brief Introduction to Regular Expression with Python 2.7.3 Standard Library
A Brief Introduction to Regular Expression with Python 2.7.3 Standard Library
 
GNU gettext簡介 - 以C語言為範例
GNU gettext簡介 - 以C語言為範例GNU gettext簡介 - 以C語言為範例
GNU gettext簡介 - 以C語言為範例
 
Guide to GStreamer Application Development Manual: CH1 to CH10
Guide to GStreamer Application Development Manual: CH1 to CH10Guide to GStreamer Application Development Manual: CH1 to CH10
Guide to GStreamer Application Development Manual: CH1 to CH10
 
Testing in python 2.7.3
Testing in python 2.7.3Testing in python 2.7.3
Testing in python 2.7.3
 
從組裝軟體中談談軟體發展管理
從組裝軟體中談談軟體發展管理從組裝軟體中談談軟體發展管理
從組裝軟體中談談軟體發展管理
 
軟體組裝心得分享
軟體組裝心得分享軟體組裝心得分享
軟體組裝心得分享
 
Introduce to Linux command line
Introduce to Linux command lineIntroduce to Linux command line
Introduce to Linux command line
 

Recently uploaded

costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 

Recently uploaded (20)

costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 

GNU Make, Autotools, CMake 簡介