😎 κ³΅λΆ€ν•˜λŠ” μ§•μ§•μ•ŒνŒŒμΉ΄λŠ” μ²˜μŒμ΄μ§€?

[Embedded μœ„ν•œ ν•œλ°œμ§ λ‘λ°œμ§πŸΎ] C++ μ‹€ν–‰νŒŒμΌ ꡬ쑰 & Frist! "Hello World" λ³Έλ¬Έ

πŸ‘©‍πŸ’» IoT (Embedded)/C++

[Embedded μœ„ν•œ ν•œλ°œμ§ λ‘λ°œμ§πŸΎ] C++ μ‹€ν–‰νŒŒμΌ ꡬ쑰 & Frist! "Hello World"

μ§•μ§•μ•ŒνŒŒμΉ΄ 2023. 6. 23. 19:24
728x90
λ°˜μ‘ν˜•

<λ³Έ λΈ”λ‘œκ·ΈλŠ” 따배씨 λ‹˜μ˜ 유튜브λ₯Ό μ°Έκ³ ν•΄μ„œ κ³΅λΆ€ν•˜λ©° μž‘μ„±ν•˜μ˜€μŠ΅λ‹ˆλ‹€ :-)>

=> [따배씨++] λ”°λΌν•˜λ©° λ°°μš°λŠ” C++ | λͺ¨λ˜ c++, c++ κ°•μ˜, c++ κ°•μ’Œ, c++ μ–Έμ–΄, 기초 & c++ ν”„λ‘œκ·Έλž˜λ°, μ½”λ”©

 

🫧 C++ μ‹€ν–‰νŒŒμΌ ꡬ쑰

https://blackperl-security.gitlab.io/blog/2016/03/07/2016-03-07-pltgot-01/

1. μ†ŒμŠ€ νŒŒμΌ(source file)의 μž‘μ„±
: μž‘μ„±λœ ν”„λ‘œκ·Έλž¨μ„ μ›μ‹œ νŒŒμΌ λ˜λŠ” μ†ŒμŠ€ νŒŒμΌ (c++)


2. μ„ ν–‰μ²˜λ¦¬κΈ°(preprocessor)에 μ˜ν•œ μ„ ν–‰μ²˜λ¦¬
: μ„ ν–‰μ²˜λ¦¬ λ¬Έμž(#)둜 μ‹œμž‘ν•˜λŠ” μ„ ν–‰μ²˜λ¦¬ μ§€μ‹œλ¬Έμ˜ μ²˜λ¦¬ μž‘μ—…
: μ»΄νŒŒμΌν•˜κΈ° μ „ μ»΄νŒŒμΌλŸ¬κ°€ μž‘μ—…ν•˜κΈ° μ’‹λ„둝 μ†ŒμŠ€λ₯Ό μž¬κ΅¬μ„±


3. μ»΄νŒŒμΌλŸ¬(compiler)에 μ˜ν•œ μ»΄νŒŒμΌ
: μ†ŒμŠ€ νŒŒμΌμ„ μ»΄ν“¨ν„°κ°€ μ•Œμ•„λ³Ό μˆ˜ μžˆλŠ” κΈ°κ³„μ–΄λ‘œ λ³€ν™˜
:  μ»΄νŒŒμΌμ΄ λλ‚˜ κΈ°κ³„μ–΄λ‘œ λ³€ν™˜λœ νŒŒμΌμ„ μ˜€λΈŒμ νŠΈ νŒŒμΌ(object file)


4. λ§μ»€(linker)에 μ˜ν•œ λ§ν¬
: ν•˜λ‚˜ μ΄μƒμ˜ μ˜€λΈŒμ νŠΈ νŒŒμΌκ³Ό λΌμ΄λΈŒλŸ¬λ¦¬ νŒŒμΌ, μ‹œλ™ μ½”λ“œ λ“±μ„ ν•©μ³ ν•˜λ‚˜μ˜ νŒŒμΌλ‘œ λ§Œλ“œλŠ” μž‘업을 λ§ν¬(link)
: μ—¬λŸ¬ κ°œμ˜ μ†ŒμŠ€ νŒŒμΌμ„ μž‘μ„±ν•˜μ—¬ μ΅œμ’…μ μœΌλ‘œ λ§ν¬λ₯Ό ν†΅ν•΄ ν•˜λ‚˜μ˜ μ‹€ν–‰ νŒŒμΌλ‘œ λ§Œλ“œλŠ” κ²ƒμ„ λΆ„ν•  μ»΄νŒŒμΌ


5. μ‹€ν–‰ νŒŒμΌ(executable file)의 μƒμ„±
: μ†ŒμŠ€ νŒŒμΌμ€ μ„ ν–‰μ²˜λ¦¬κΈ°, μ»΄νŒŒμΌλŸ¬ κ·Έλ¦¬κ³  λ§μ»€μ— μ˜ν•΄ μœ„와 κ°™μ€ κ³Όμ •μ„ κ±°μ³ μ‹€ν–‰ νŒŒμΌλ‘œ λ³€ν™˜ (exe)

 

🫧 Hello world

#include <iostream>

int main() {
	std::cout << "Hello World" << std::endl;
	return 0;
}

728x90
λ°˜μ‘ν˜•
Comments