|
|--parent.proto
|
|--sub
|--child.proto
์์ ๊ฐ์ด ๋๋ ํฐ๋ฆฌ ๊ตฌ์กฐ๊ฐ ๊ตฌ์ฑ๋์ด์๊ณ child.proto์์ ์์ ์ ์์ ํด๋์ ์์นํ parent.proto๋ฅผ import ํ๊ณ ์ถ์ ๋๊ฐ ์๋ค.
๋ฌธ์ ๋๋ ๊ฒฝ์ฐ
parent.proto
syntax = "proto3";
package parent;
message Attribute {
---
}
child.proto
syntax = "proto3";
package child;
import "../parent.proto";
message Child {
parent.Attribute attribute = 1;
}
(ํ์ฌ ๋ช
๋ น์ด๋ฅผ ์
๋ ฅํ๋ ์์น๊ฐ parent.proto๊ฐ ์๋ ํด๋๋ผ ๊ฐ์ ํ ๋)
protoc -I=.\ .\parent.proto --cpp_out=".\"
protoc -I=.\sub .\sub\child.proto --cpp_out=".\"
์์์ ์ผ๋ก import๋ฅผ ํ ๋ ์๋ ๊ฒฝ๋ก๋ฅผ ์จ์ฃผ๋ฏ์ด "../parent.proto"๋ฅผ ์จ์ฃผ๋ฉด ๋ ๊ฒ ๊ฐ์ง๋ง ํ๋กํ ์ฝ ๋ฒํผ์์๋ ์ง์ํ์ง ์๋ ๋ฌธ๋ฒ์ด๋ค.
๊ทธ๋ ๊ธฐ์, child.proto์์ parent.proto๊ฐ ์ด๋์ ์์นํด์๋์ง ๋ชจ๋ฅธ๋ค.
ํด๊ฒฐ ๋ฐฉ๋ฒ
parent.proto
syntax = "proto3";
package parent;
message Attribute {
---
}
child.proto
syntax = "proto3";
package child;
import "parent.proto";
message Child {
parent.Attribute attribute = 1;
}
(ํ์ฌ ๋ช
๋ น์ด๋ฅผ ์
๋ ฅํ๋ ์์น๊ฐ parent.proto๊ฐ ์๋ ํด๋๋ผ ๊ฐ์ ํ ๋)
protoc -I=.\ .\parent.proto --cpp_out=".\"
protoc -I=.\sub -I=.\ .\sub\child.proto --cpp_out=".\"
ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๊ฐ๋จํ๋ค. child.proto์์ import๋ ๊ฒฝ๋ก์ ์๊ด์์ด ํ์ผ ์ด๋ฆ๋ง ์จ์ฃผ๊ณ ํ๋กํ ํ์ผ์ ์ ๋๋ ์ดํธ ํ๋ ๋ช
๋ น์ด์์ -I ์ต์
์ ์ฌ๋ฌ ๋ฒ ์ฃผ๋ฉด ๋๋ค. ๋จ, ์์์ ์ฃผ์ํ ํ์๊ฐ ์๋ค.
-I=์์ ์ ํด๋(child.proto) |
-I=import์ํฌ ํ์ผ์ด ์๋ ํด๋(parent.proto) |