AndroidãQtã®ãããªãã¬ãŒã ã¯ãŒã¯ãªã©ã®ç¹å®ã®ãã©ãããã©ãŒã çšã®C ++ã³ãŒããæžãããšã§ã¯ãªããã³ãŒãã®æ§ç¯ãšç·šéã®äž¡æ¹ã§æºåãã§ããŠããã®ã§ã¯ãªããç¹å®ã®ãã©ãããã©ãŒã ã«é¢é£ä»ããããŠããªãæ±çšã³ãŒããŸãã¯ãã¬ãŒã ã¯ãŒã¯ã«ã
å šè¬ïŒ
- ç¡æã§ãã
- ã¯ãã¹ãã©ãããã©ãŒã ïŒå°ãªããšãWindowsããã³LinuxïŒã
ãã«ãã·ã¹ãã ïŒ
- ç°ãªããã©ãããã©ãŒã ã§æ§ç¯ããåäžã®ããŒã ã
- ãã¹ãŠã®äŸåé¢ä¿ãé©åã«èæ ®ããã€ã³ã¯ãªã¡ã³ã¿ã«ã¢ã»ã³ããªïŒããããŒãã¡ã€ã«ãšã¢ã»ã³ããªã«äœ¿çšããããµãŒãããŒãã£ã³ã³ããŒãã³ãã
- ã¢ã»ã³ããªã¹ã¯ãªããã«ã¯ãç¹å®ã®ãããžã§ã¯ãã«åºæã®å¿ èŠãªæå°æ§æã®ã¿ãå«ããå¿ èŠããããŸãã ãã«ãã®äžè¬çãªããžãã¯ã¯ãã¹ã¯ãªããããã¹ã¯ãªãããžãšç§»åããã¹ãã§ã¯ãããŸãããããã«ãã·ã¹ãã ãŸãã¯ãã®ãã©ã°ã€ã³ã«ãããŸãã
- çµã¿èŸŒã¿ã®äžŠåã¢ã»ã³ããªã
- ããŸããŸãªããŒã«ãã§ãŒã³ïŒå°ãªããšãgccãVisual C ++ãCLangïŒã®ãµããŒãã
- ãã«ãã¹ã¯ãªããå šäœãæžãæããããšãªããæå°éã®ã³ã¹ãã§ããŒã«ãã§ãŒã³ãå€æŽããæ©èœã
- ç°¡åã«åãæ¿ãå¯èœãªãã«ããªãã·ã§ã³ïŒãããã°ãšãªãªãŒã¹ã
- makeãªã©ã®è¿œå ã®äœã¬ãã«ããŒã«ãžã®äŸåã¯ãå®å šã«æãŸãããããŸããã ã€ãŸããã¢ã»ã³ããªã·ã¹ãã ã¯èªçµŠèªè¶³ã§ãªããã°ãªããŸããã
- JVMçšã®pkg-configãMaven Centralãªã©ã®ãµãŒãããŒãã£ã³ã³ããŒãã³ãã®ãªããžããªãšãã«ãã·ã¹ãã ãçµ±åããããšã¯éåžžã«æãŸããããšã§ãã
- ãã«ãã·ã¹ãã ã¯ã次ã®ããã«ãã©ã°ã€ã³ã«ãã£ãŠæ¡åŒµå¯èœã§ããå¿ èŠããããŸãã ç¹å®ã®åãããžã§ã¯ãã®ãã«ãæé ã¯ãæšæºã®æ§ç¯ã³ã³ã»ããïŒããšãã°ãã³ãŒãçæããŸãã¯éæšæºã€ã¡ãŒãžã®ã¢ã»ã³ããªïŒãããè€éã«ãªãå ŽåããããŸãã
- ãã«ãã¹ã¯ãªãããäœããã®é«ã¬ãã«ããã°ã©ãã³ã°èšèªãŸãã¯ããåªããDSLã§ããå Žåã«äŸ¿å©ã§ãã ããã«ãããéåžžã«ã³ã¹ãããããããã¹ã¯ãªããå ã§çŽæ¥æ§é ã®åäœãæ瀺çã«å€æŽã§ããŸãã
- ãã«ãã¹ã¯ãªããããã³ã³ãã€ã©ãšãªã³ã«ãèšå®ãããšããã·ã¹ãã ãå°ãªããšãåºæ¬çãªæœè±¡åãæäŸããå Žåãããã¯éåžžã«äŸ¿å©ã§ããããšãã°ããã¯ããè¿œå ããã-ãªããã©ã®ã³ã³ãã€ã©ã³ãã³ãã©ã€ã³ãã©ã¡ãŒã¿ãããã«é¢äžããããèããŸããïŒ MSVCã®/ DãŸãã¯gccã®-D-ãããã®éèŠã§ãªã詳现ããã«ãã·ã¹ãã ã«èªåçã«è§£æ±ºãããŸãã
- ã°ã©ãã£ã«ã«éçºç°å¢ïŒIDEïŒãšã®è¯å¥œãªçµ±åã
IDEïŒ
- IDEãC ++ã³ãŒããæ£ãããç解ãããèœåã IDEã¯ããã¹ãŠã®ãããžã§ã¯ããã¡ã€ã«ãšããã¹ãŠã®ãµãŒãããŒãã£ããã³ã·ã¹ãã ã®ããããŒãã¡ã€ã«ãšå®çŸ©ïŒå®çŸ©ããã¯ãïŒã®ã€ã³ããã¯ã¹ãäœæã§ããå¿ èŠããããŸãã
- IDEã¯ããããžã§ã¯ãããã«ãããããã®ã³ãã³ããã«ã¹ã¿ãã€ãºããæ©èœãããã³ããããŒãã¡ã€ã«ãšå®çŸ©ãæ€çŽ¢ããå ŽæãæäŸããå¿ èŠããããŸãã
- ã³ãŒãã®å ¥åã«å¹æçã«åœ¹ç«ã€ã¯ãã§ãã æé©ãªè£å®ãªãã·ã§ã³ãæäŸããæ§æãšã©ãŒãªã©ã«ã€ããŠèŠåããŸã
- 倧èŠæš¡ãªãããžã§ã¯ããããã²ãŒãããã®ã¯äŸ¿å©ã§ã䜿çšæ¹æ³ããã°ããç°¡åã«èŠã€ããããšãã§ããŸãã
- ååå€æŽãªã©ããªãã¡ã¯ã¿ãªã³ã°ã®ããã®ååãªæ©äŒãæäŸããŸãã
- ãã³ãã¬ãŒãã³ãŒããçæããæ©èœãå¿ èŠã§ã-æ°ããã¯ã©ã¹ãã¬ãŒã ã¯ãŒã¯ãããããŒãã¡ã€ã«ãå®è£ ãã¡ã€ã«ãäœæããŸãã ã²ãã¿ãŒ/ã»ãã¿ãŒã®çæãã¡ãœããå®çŸ©ããªãŒããŒããŒãä»®æ³ã¡ãœãããçŽç²ã«ä»®æ³ã¯ã©ã¹ïŒã€ã³ã¿ãŒãã§ãŒã¹ïŒã®å®è£ ãã¿ãŒã³ãªã©
- Doxygenãªã©ã®ã³ãŒãããã¥ã¡ã³ãã¿ã°ã®åŒ·èª¿è¡šç€ºãšãµããŒãã
ãããã®ããŠã£ãã·ã¥ãªã¹ããã«ç §ãããŠãããã€ãã®ã¢ã»ã³ããªã·ã¹ãã ãšã°ã©ãã£ã«ã«éçºç°å¢ãæ€èšããŸããã ãã®çãã¬ãã¥ãŒã¯å®å šãªãµãããããã®ã§ã¯ãªããç§ã®äž»èŠ³çãªè©äŸ¡ãå«ãã§ããŸãããããããæåã®ã¹ããããšããŠæçšãªèª°ãã«æãããã§ãããã
äœã - [å€ä»£]ãã¹ããã³ã§ããã誰ããåŒéããããªããããŸããŸãå€ãã®æ°ãããããžã§ã¯ããåŒãåããããšãäœåãªããããã¢ã»ã³ããªã·ã¹ãã ã®åœç¶ã®ããã©ã³ã§ãã ããã¯ãç¬èªã®ç¹å®ã®èšèªãåããéåžžã«äœã¬ãã«ã®ããŒã«ã§ãããã¿ãã§ã¯ãªãã¹ããŒã¹ã䜿çšãããšããã®å Žã§å®è¡ãããšããã«è ããããŸãã makeã䜿çšãããšãä»»æã®è€éãªãã«ããè¡ãããšãã§ããŸãããã¹ã¯ãªãããäœæããåªåãæã£ãŠããããææ°ã«ä¿ã€å¿ èŠããããŸãã ãã«ãã®ããžãã¯ããããžã§ã¯ããããããžã§ã¯ãã«ç§»ãã®ãè²»çšãããããŸãã å¿è ããžã£ã ãªã©ã®ææ°ã®å粧代æ¿åããããŸãããæ¬è³ªã¯å€ãããŸãã-ãããã¯éåžžã«äœã¬ãã«ã®ããŒã«ã§ãã ã¢ã»ã³ãã©ãšåãããã«ã奜ããªãã®ãæžãããšãã§ããŸãããããã ãã®äŸ¡å€ã¯ãããŸããïŒ
CMake- [Middle Ages]ã¡ã€ã¯ã®äœã¬ãã«ã®è©³çŽ°ããéããããã®æåã®è©Šã¿ã ããããæ®å¿µãªããããããŸã§è¡ãããšã¯ã§ããŸããã§ãããããã§ã®ãšã³ãžã³ã¯ãCMakeãããé«ã¬ãã«ã®ãã«ãèšè¿°ãæã€å¥ã®ããã¹ããã¡ã€ã«ã«åºã¥ããŠå·šå€§ãªã¡ã€ã¯ãã¡ã€ã«ãçæãããã®ãšåãã¡ã€ã¯ã§ãã Qmakeãåæ§ã«æ©èœããŸãã ãã®ã¢ãããŒãã¯ãæ°é®®ãªãã©ã¹ããã¯ã§æ éã«èŠãããå€ãæšé äœå® ã®çŸããå€èŠ³ãæãåºãããŸãã CMakeã¯å®å®ããå®çžŸã®ããã·ã¹ãã ã§ãããEclipseãšã®çµã¿èŸŒã¿çµ±åããããŸãããæ®å¿µãªãããèšäºã®åé ã§è¿°ã¹ãèŠä»¶ã®äžéšãšççŸãããããç§ã«ã¯åããŠããŸããã§ããã Linuxã§ã¯ããã¹ãŠãããŸãããããã«èŠããŸãããMSVCã䜿çšããŠWindowsäžã§åããããžã§ã¯ãããã«ãããå¿ èŠãããå Žå-ãããŠãMinGWããããã€ãã£ãã³ã³ãã€ã©ã奜ãå ŽåãNMakeã®ãã¡ã€ã«ãçæãããŸãã ã€ãŸã å¥ã®ããŒã«ãžã®äŸåé¢ä¿ããã³å¥ã®ãã©ãããã©ãŒã çšã®ç°ãªããã«ãã³ãã³ãã ãããŠããããã®ãã¹ãŠã¯ãä»ã®ããã«ããŒãã«ãã£ãŠäœæ¥ã®å€§éšåãè¡ããããšããå°ãæ²ãã£ãã¢ãŒããã¯ãã£ã®çµæã§ãã
Ant- [ã«ãããµã³ã¹] Javaçšã®makeã®äžçš®ã®ã¯ããŒã³ã ççŽã«èšã£ãŠãC ++ã®ãã«ãã·ã¹ãã ãšããŠAntïŒããã³MavenïŒããã§ãã¯ããã®ã«ããªãã®æéãè²»ãããŸããã ãããŠãããã§ã®C ++ãµããŒãã¯çŽç²ã«ãã·ã§ãŒãã§ãããååã«éçºãããŠããªããšããæ觊ãããã«æããŸããã ããã«ãJavaãããžã§ã¯ãã§ããAntã¯ã»ãšãã©äœ¿çšãããŠããŸããã ã¹ã¯ãªããèšèªïŒããã³Mavenã®å ŽåïŒãšããŠãããã§XMLãéžæãããŠããŸã-ãã®äžå£ãªé³¥ã®èšèª:)ã ãã®æ¥œèŠ³çãªäºå®ã¯ããã®ãããã¯ã«ããã«æ²¡é ããããã«ç§ããŸã£ããè¿œå ããŸããã§ããã
SConsã¯ã ïŒæ°ããæ代ã®ïŒ Pythonã§æžãããèªå·±å®çµåã®ã¯ãã¹ãã©ãããã©ãŒã ãã«ãã·ã¹ãã ã§ãã SConsã¯ãJavaãã«ããšC ++ãã«ãã®äž¡æ¹ã§åæ§ã«ããŸãæ©èœããŸãã ã€ã³ã¯ãªã¡ã³ã¿ã«ã¢ã»ã³ããªã®ããããŒã®äŸåé¢ä¿ã¯æ£ããæ©èœãïŒç解ããŠãããšããããã«ãã¡ã¿ããŒã¿ã䜿çšããŠç¹å®ã®ããŒã¿ããŒã¹ãäœæãããŸãïŒãWindows MSVCã§ã¯ã¿ã³ããªã³ãªãã§åäœããŸãã ãã«ãã¹ã¯ãªããèšèªã¯Pythonã§ãã éåžžã«äŸ¡å€ã®ããã·ã¹ãã ã§ãããç§ã¯ãã®ç 究ãçµããããããšæã£ãŠããŸãããããåç¥ã®ããã«ãå®ç§ã«å¶éã¯ãªãããã詳现ãªèª¿æ»ã«ãããäžèšã®èŠä»¶ã«ç §ãããŠããã€ãã®æ¬ ç¹ãæããã«ãªããŸããã
ã³ã³ãã€ã©ã®æœè±¡çãªèšå®ã¯ãªããããããšãã°ãããŒã«ãã§ãŒã³ãå€æŽããå¿ èŠãããå Žåã¯ããã«ãã¹ã¯ãªããå ã®å Žæãæ¢ããŠå€æŽãå ããå¿ èŠããããŸãã åããã¯ãããã¹ããããæ¡ä»¶ã§èšè¿°ããå¿ èŠããããŸã-Windowsã®å Žåã¯GCCã®å Žåãªã©ã
ãªã¢ãŒãã®ã¢ãŒãã£ãã¡ã¯ããšããããã«ããå¥ã®ãã«ãã«é«åºŠã«äŸåããããšã¯ãµããŒããããŠããŸããã
äžè¬çãªã¢ãŒããã¯ãã£ã¯ããããããŠãŒã¶ãŒå®çŸ©ãã«ããŒãã»ãŒåé¢ããŠååšããããã«æ§ç¯ãããŠãããæ¢åã®ãã«ãããžãã¯ã䜿çšããŠãåçŽãªãã©ã°ã€ã³ãä»ããŠç¬èªã®ãã«ãããžãã¯ãè£å®ããæ¹æ³ã¯ãããŸããã ããããå šäœçã«ã¯å°èŠæš¡ãªãããžã§ã¯ãã«ãµããããéžæã§ãã
Gradle [çŸåš] -Gradle for Javaããã³Kotlinãããžã§ã¯ãã䜿çšããããšã§ãååããªçµéšããããããã«å¯Ÿãã倧ããªåžæããããŸããã
JVMèšèªã®å ŽåãGradleã«ã¯ããããžã§ã¯ãã®ãã«ãïŒãã«ãã®äŸåé¢ä¿ïŒã«å¿ èŠãªã©ã€ãã©ãªãæäœãããšããéåžžã«äŸ¿å©ãªæŠå¿µããããŸãã
- ãã®ã¹ã¯ãªããã¯ããªããžããªã®ã¢ãã¬ã¹ãã¢ãŒãã£ãã¡ã¯ããããšãã°mavenãŸãã¯ivyã«ç»é²ããŸãã ãŸããä»ã®ã¿ã€ã/圢åŒã®ãªããžããªã«ããããšãã§ããŸã-ãã©ã°ã€ã³ã®ã¿ãååšããå Žåã ãªã¢ãŒããªããžããªãMaven CentralããŸãã¯ãããã¯ãŒã¯äžã®ã©ããã§ãã¹ãããŠããå人ãã¹ãããŸãã¯ãã¡ã€ã«ã·ã¹ãã äžã®åãªãããŒã«ã«æ åœè ã§ãã
- ãŸããã¹ã¯ãªããã®ç¹å¥ãªã»ã¯ã·ã§ã³ã§ã¯ããã«ãã®äŸåé¢ä¿ãçŽæ¥ç€ºãããŠããŸã-å¿ èŠãªãã€ããªã¢ãŒãã£ãã¡ã¯ããšããŒãžã§ã³ã®ãªã¹ãã
- ãã«ããéå§ããåã«ãGradleã¯ãã¹ãŠã®äŸåé¢ä¿ã解決ããããšãããã¹ãŠã®ãªããžããªã§æå®ãããããŒãžã§ã³ã®ã¢ãŒãã£ãã¡ã¯ããæ¢ããŸãã ãã€ããªã¯ãã£ãã·ã¥ã«ããŒãããããã«ãã«èªåçã«è¿œå ãããŸãã ããã¯éåžžã«äŸ¿å©ã§ãC ++ã®å Žåããããã䌌ããããªããšãããããšæã£ãŠããŸããã
æåã«ãC ++ãµããŒãã®ãå€ãããã©ã°ã€ã³-ãcppãããã§ãã¯ã¢ãŠããã倱æããŸãã-ã¹ã¯ãªããæ§é ã¯çŽæçã§ã¯ãããŸããïŒã¢ãã«ãã³ã³ããŒãã³ããnativespec-ããŸããŸãªã¿ã€ãã®ãã€ããªããã®ããçš®ã®ããã·ã¥ããã·ã¥ïŒå®è¡å¯èœãã¡ã€ã«ãšã©ã€ãã©ãªã®äž¡æ¹ããã¹ãŠ1ã€ã®ã¹ã¯ãªããã«å«ãŸããŠããŸãã åäœãã¹ããã©ãã«çœ®ããã¯æ確ã§ã¯ãããŸããã ãã®æ§é ã¯ãJavaã§äœ¿çšãããã®ãšã¯å€§ããç°ãªããŸããã
ããããC ++ãµããŒãçšã®ãæ°ããããã©ã°ã€ã³ãããããšãå€æããŸããã`cpp-application`-ã¢ããªã±ãŒã·ã§ã³çšã `cpp-library`ã©ã€ãã©ãªçšïŒéçããã³åçããããŠæåŸã«` cpp-unit-test`ãŠããããã¹ãçšã ãããŠããããç§ãæ¢ããŠãããã®ã§ããïŒ :)
ããã©ã«ãã®ãããžã§ã¯ããã©ã«ããŒæ§é ã¯ãJavaãããžã§ã¯ãã«äŒŒãŠããŸãã
- src / main / cpp-ã¡ã€ã³* .cppãããžã§ã¯ããã¡ã€ã«ã®ã«ãŒããã©ã«ããŒã
- src / main / headers-å éšããããŒãã¡ã€ã«ã®ãã©ã«ããŒã
- src / main / public-ãšã¯ã¹ããŒããããããããŒã®ãã©ã«ã-ã©ã€ãã©ãªçšã
- src / test / cpp-ãã¹ããŠãããã®* .cppãã¡ã€ã«ã®ãã©ã«ããŒã
ãã®ãããªæ§é ã¯å³æ Œã§ã¯ãããŸãããã¹ã¯ãªããã§ãã€ã§ãå€æŽã§ããŸãããç¹å¥ãªå¿ èŠããªãéããããè¡ãããšã¯ã§ããŸãããéåžžã«åççã§ãã
ã¡ãªã¿ã«ããã«ãã¹ã¯ãªããã¯éåžžbuild.gradleã§ã ããããã¯ãéžæããGroovyãŸãã¯Kotlinã®DSLïŒ build.gradle.kts ïŒã§ãã ã¹ã¯ãªããå ã§ã¯ãGradle APIãšã¹ã¯ãªããã«è¿œå ããããã©ã°ã€ã³ã®APIã¯åžžã«å©çšå¯èœã§ãã
ã©ã€ãã©ãªã®å Žåãã¿ã€ããéžæã§ããŸãïŒéçãŸãã¯åçïŒãŸãã¯äž¡æ¹ã®ãªãã·ã§ã³ãåéïŒã
ããã©ã«ãã§ã¯ãDebugïŒ gradle assemble ïŒãšReleaseïŒ gradle assembleRelease ïŒã®2ã€ã®ãã«ããªãã·ã§ã³ãæ§æãããŠããŸãã
åäœãã¹ãã®å®è¡åçã¯Javaã®å Žåãšåãã§ãïŒgradleãã¹ãã¯ã¡ã€ã³ã³ã³ããŒãã³ãããã«ããã次ã«src / test / cppãã©ã«ããŒã«ããå Žåã¯ãã¹ãããã«ãããŠããããã¹ãã¢ããªã±ãŒã·ã§ã³ãå®è¡ããŸãã
æªåé«ãå®çŸ©ã¯æœè±¡çãªæ¹æ³ã§èšå®ã§ããŸã-Gradleèªäœãå¿ èŠãªã³ã³ãã€ã©ãªãã·ã§ã³ãçæããŸãã æé©åããããã°æ å ±ãªã©ãããã«æœè±¡çãªèšå®ãããã€ããããŸãã
ããã«äœ¿çšã§ããGCCãMicrosoft Visual C ++ãCLangããµããŒããããŠããŸãã
ãã©ã°ã€ã³ã·ã¹ãã ã¯éåžžã«éçºãããŠãããæ¡åŒµã¢ãŒããã¯ãã£ã¯äŸ¿å©ã§ããæ¢è£œã®ããžãã¯ã䜿çšããŠããããè£ é£Ÿ/æ¡åŒµã§ããŸãã ãã©ã°ã€ã³ã«ã¯2ã€ã®ã¿ã€ãããããŸããåçãã©ã°ã€ã³ã¯ãGroovyã§çŽæ¥èšè¿°ãããã¹ã¯ãªããã«åã蟌ãŸããããJavaïŒãŸãã¯JVMã䜿çšããå¥ã®èšèªïŒã§èšè¿°ããããã€ããªã¢ãŒãã£ãã¡ã¯ãã«ã³ã³ãã€ã«ãããŸãã ãã©ã°ã€ã³ã«ã¯ã誰ã§ããã©ã°ã€ã³ãæçš¿ã§ããç¡æã®Gradleã¢ãŒãã£ãã¡ã¯ããããã誰ã§ãå©çšã§ããŸãã ããã¯ãã®èšäºã®èè ã«ãã£ãŠæåè£ã«å®äºããŸãã:)ããããã«ã€ããŠã¯åŸã§è©³ãã説æããŸãã
Gradle for C ++ã§ãã€ããªã³ã³ããŒãã³ããæäœããã·ã¹ãã ã«ã€ããŠèª¬æããŸããJavaãšã»ãŒåãã§ãã äŸåé¢ä¿ã®ãã«ãã¯ãäžèšã§èª¬æãããã®ãšã»ãŒåãããã«æ©èœããŸãã
äŸãšããŠè€åãã«ããåãäžããŸãã
- utils-ã©ã€ãã©ãªãã©ã«ããŒ
- appã¯ãutilsã䜿çšããã¢ããªã±ãŒã·ã§ã³ã®ãããã©ã«ããŒã§ãã
- settings.gradle-ããã2ã€ã®ã³ã³ããŒãã³ããè€åãã«ãã«çµåããããã®Gradleãã¡ã€ã«ã
appãã©ã«ããŒã®build.gradleãã¡ã€ã«ã«ã次ã®äŸåé¢ä¿ãèšè¿°ããã ãã§ååã§ãã
dependencies { implementation project(':utils') }
Gradleãæ®ããè¡ããŸãïŒ ã³ã³ãã€ã©ãžã®ãã¹ãè¿œå ããŠãutilsããããŒãã¡ã€ã«ãæ€çŽ¢ããã©ã€ãã©ãªbinarããªã³ã¯ããŸãã
ãããŠãããã¯ãã¹ãŠLinux GCCãšWindows MSVCã®äž¡æ¹ã§åæ§ã«ããŸãæ©èœããŸãã
ãã¡ãããã€ã³ã¯ãªã¡ã³ã¿ã«ãã«ããããŸãæ©èœããŸããutilsã®ããããŒãå€æŽãããšãã¢ããªãåæ§ç¯ãããŸãã
å€æããããã«ãGradleã¯ããã«é²ãã§ãC ++ã¢ãŒãã£ãã¡ã¯ããMavenãªããžããªã«ã¢ããããŒãããæ©èœãå®çŸããŸããïŒ ãããè¡ãã«ã¯ãæšæºã® `maven-publish`ãã©ã°ã€ã³ã䜿çšããŸãã
ã¹ã¯ãªããã§ã¯ãã¢ãŒãã£ãã¡ã¯ããé 眮ããgradleãå ¬éããïŒãŸãã¯ããŒã«ã«å ¬éã®å Žåã¯gradle publishToMavenLocalïŒãªããžããªãæå®ããå¿ èŠããããŸãã Gradleã¯ãããžã§ã¯ããåæ¢ãã
ããŒãžã§ã³ããã©ãããã©ãŒã ãã¢ãŒããã¯ãã£ããã«ããªãã·ã§ã³ãèæ ®ããŠãç¹å¥ãªåœ¢åŒã§ã¬ã€ã¢ãŠãããŸãã
ãã€ããªã©ã€ãã©ãªãã¡ã€ã«èªäœãšãããªãã¯ããããŒãã¡ã€ã«ã¯ã src / main / publicãã©ã«ããŒããã¬ã€ã¢ãŠããããŸãã
C ++ã¢ãŒãã£ãã¡ã¯ããMaven Centalã«ã¢ããããŒãã§ããªãããšã¯æããã§ããå¿ é ã®ã·ã¹ãã ãã§ãã¯ã«åæ ŒããŸããã ãããããããã¯ãŒã¯äžã®Mavenãªããžããªãäžããããšã¯ãŸã£ããé£ãããªããããŒã«ã«ãªããžããªã«å¯ŸããŠäœãããå¿ èŠã¯ãããŸãã-ããã¯ãã£ã¹ã¯äžã®åãªããã©ã«ãã§ãã
ãããžã§ã¯ãã§èª°ãã®ã©ã€ãã©ãªã䜿çšãããå Žåã¯ããã«ãã¹ã¯ãªããã§æ¬¡ã®ããã«èšè¿°ã§ããŸãã
repositories { maven { url = 'https://akornilov.bitbucket.io/maven' } } unitTest { dependencies { implementation 'org.bitbucket.akornilov.tools:gtest:1.8.1' } }
ããã§ã¯ããŠããããã¹ãã«ã¯ã Mavenãªããžããªã® gtestã¢ãŒãã£ãã¡ã¯ãããŒãžã§ã³1.8.1ã䜿çšããå¿ èŠããããšæžãããŠããŸã ã
ã¡ãªã¿ã«ãããã¯éåžžã«ãªã¢ã«ãªãªããžããªã§ãWindowsããã³Linux x86_64ã®Gradleã䜿çšããŠãã«ãããããã¹ããã«ãGoogle Test v1.8.1ãæçš¿ãããŠããŸãã
åœç¶ãGradleã®å€éšã³ã³ããŒãã³ããšé£åããããã«ã³ã³ãã€ã©ãŒãšãªã³ã«ãŒãæ§æããéã®äœã¬ãã«ã®äœæ¥ã¯ãã¹ãŠåŒãç¶ãããŸãã ãã®ãããªãªããžããªã䜿çšããŠããã®ãããªã©ã€ãã©ãªã䜿çšããææã宣èšããã ãã§ååã§ãã
IDEãšã®çµ±åã®ããã«ãGradleã«ã¯Visual StudioãšXcodeçšã®2ã€ã®çµã¿èŸŒã¿ãã©ã°ã€ã³ããããŸãã Visual Studioãã©ã°ã€ã³ãsrc / test / cppãã©ã«ããŒããã®ãŠããããã¹ãã³ãŒããç¡èŠããã¡ã€ã³ã³ãŒãã®ã¿ã®ãããžã§ã¯ããçæããããšãé€ããŠããããã¯ããŸãæ©èœããŸãã
IDEã«ã€ããŠããããŠGradleãšåéãäœãæ¹æ³ã«ã€ããŠè©±ããŸãã
Eclipse CDTïŒ2018-12RïŒã¯ãæçããé«å質ã®è£œåã§ãã 圌ãããªãã®ãããžã§ã¯ããããŸã解æã§ãããªããããªãã¯å¹žéã§ã-ç·šéããã®ã¯å¿«é©ã§ãããã ããããã圌ã¯æãæ··ä¹±ããã¿ã€ãã®èªåè»ãããç解ãããã§ãããã ããããããã§ãªãå Žå...ãã®åŸã圌ã¯èµ€ãç¹ç·ã§é£ç¶ããŠãã¹ãŠãæ¿ãã匷調ããæªãèšèã§èªããŸãã ããšãã°ãæšæºã®MSVCããã³Windows SDKããããŒãã¡ã€ã«ããã€ãžã§ã¹ãããŸããã å®å šã«ç¡å®³ãªprintfã§ãããèµ€ãç¹ç·ã§äžç·ãåŒãããŠãããæå³ã®ãããã®ãšããŠèªèãããŠããŸããã std :: stringããããŸããã Linuxã®ããšã§ã¯ã圌ã®ãã€ãã£ãgccã§ãã¹ãŠãããŸããããŸãã ããããå§åŠ¹ã®Android Nativeãããããžã§ã¯ãã®ã€ã³ããã¯ã¹ãäœæããããšããŠããåé¡ãå§ãŸããŸããã ãã€ãªããã¯ããããŒã§ã¯ã圌ã¯ãsize_tã®å®çŸ©ãããã³åæã«ããã䜿çšãããã¹ãŠã®é¢æ°ã®åç §ãæåŠããŸããã ãããããWindowsã§ã¯ãããšãã°MicrosoftããããŒãã¡ã€ã«ã®ä»£ããã«CygwinãŸãã¯MinGW SDKã䜿çšããŠãç¶æ³ãä¿®æ£ããããšãã§ããŸããããããã®ããªãã¯ã¯ç§ã«ã¯ããŸãèå³ããããŸãããç§ã¯ãã®ã¬ãã«ã®ãœãããŠã§ã¢ããäžãããã®ãé£ã¹ããã ãã§ãªãã圌ããæãããããšã
ãã³ãã¬ãŒãã³ãŒãã®ããã²ãŒãããªãã¡ã¯ã¿ãªã³ã°ãããã³çæã®å¯èœæ§ã¯çŽ æŽãããã§ãããæåãå ¥åããéã«ââãã«ããŒã«è³ªåããããŸãïŒé·ãååããããã€ãã®æåãå ¥åããŠãè£å®ãªãã·ã§ã³ãæäŸããŠã¿ãŸãããïŒ ããããã¢ã·ã¹ã¿ã³ãã¯ãŠãŒã¶ãŒãã¢ã¯ã»ã¹ãããŸã§èŸæ±åŒ·ãåŸ ã¡ãŸãã ãŸãã¯->ãŸãã¯::ã ç§ã¯åžžã«Ctrl +ã¹ããŒã¹ãæŒãå¿ èŠããããŸã-è¿·æã§ãã Javaã§ã¯ãCDTã®ã¢ã«ãã¡ãããå šäœãããªã¬ãŒãšããŠéžæããããšã«ããããã®åä»ãªæ¬ é¥ãä¿®æ£ã§ããŸããããç°¡åãªè§£æ±ºçã¯èŠã€ãããŸããã§ããã
NetBeans 8.1 / 10.0-ç§ã¯ãã®IDEãJavaã«äœ¿çšããŠããŸããããå¿ èŠãªæ©èœããã¹ãŠåããåªãã軜éã®ãœãããŠã§ã¢ãšããŠèšæ¶ãããŠããŸããã C ++ã®å Žåãã³ãã¥ããã£ã§ã¯ãªããNetBeansã«ãã£ãŠçŽæ¥éçºããããã©ã°ã€ã³ããããŸãã C ++ãããžã§ã¯ãã®å Žåãmakeãšgccã«ã¯ããªãå³ããäŸåé¢ä¿ããããŸãã ã³ãŒããšãã£ã¿ãŒã¯ã®ãã³ãããŠããŸãã ãã³ãã¬ãŒãã³ãŒããžã§ãã¬ãŒã¿ãŒã«ã¯éåžžã«åçŽãªãã®ã¯èŠã€ãããŸããã§ããïŒã¯ã©ã¹ããããŒãã¡ã€ã«ã«æ°ããã¡ãœãããè¿œå ããŸã-ã¡ãœããæ¬äœãcppãã¡ã€ã«ã«çæããå¿ èŠããããŸã-æ¹æ³ã¯ããããŸããã ã³ãŒãã®ãç解ãã®çšåºŠã¯å¹³åã§ãããäœãã解æãããŠããããã«èŠããŸãããããã§ã¯ãªãããã§ãã ããšãã°ãèªåå埩åã䜿çšããŠããããå埩åŠçããããšã¯ã圌ã«ãšã£ãŠãã§ã«å°é£ã§ãã Google Testã®ãã¯ãã¯èªããŸãã ãã«ãã³ãã³ãã®ã«ã¹ã¿ãã€ãºã«ã¯åé¡ããããŸã-gccã䜿çšããŠLinuxã䜿çšå¯èœã«ããïŒããã¯å¥ã®ãã«ãã·ã¹ãã ãæ¢ã«äœ¿çšãããŠãããšããäºå®ã«ããããããïŒãåäœããWindowsã§ã¯MinGWãå¿ èŠãšããŸãããå®è¡ããŠãããã«ããæåŠããŸãã äžè¬ã«ãC ++ã䜿çšããŠNetBeansã§äœæ¥ããããšã¯å¯èœã§ããããããå¿«é©ãšã¯åŒã³ãŸãã;ããŸããŸãªçã¿ã«æ°ä»ããªãããã«ããã®ç°å¢ãæ¬åœã«æããå¿ èŠãããã§ãããã
KDevelop 5.3.1-ãã€ãŠKDEïŒLinuxïŒã®éçºè ããŒã«ãšããŠèããããŠããŸããããçŸåšã¯Windowsçšã®ããŒãžã§ã³ããããŸãã çŸããæ§æ匷調衚瀺ïŒKateã«åºã¥ãïŒãåããé«éã§æ¥œããã³ãŒããšãã£ã¿ãŒããããŸãã å·Šã®ãã«ãã·ã¹ãã ãæ¹ããããããšã¯ã§ããŸãããã¡ã€ã³ãã«ãã·ã¹ãã ã¯CMakeã§ãã MSVCããã³Windows SDKããããŒã«èæ§ããããŸãããããã®å Žåããprintfããã³std :: stringã¯ãEclipse CDTã®ãããªæ··ä¹±ãåŒãèµ·ãããŸããã ã³ãŒããæžãããã®éåžžã«è¿ éãªãã«ããŒ-å ¥åäžã«ã»ãŒããã«è¯ãè£å®ãªãã·ã§ã³ãæäŸããŸãã ãã³ãã¬ãŒãã³ãŒããçæããèå³æ·±ãæ©äŒããããŸããç¬èªã®ãã³ãã¬ãŒããäœæããããããªã³ã©ã€ã³ã«ããããšãã§ããŸãã ãã³ãã¬ãŒãããäœæããå Žåãæ¢è£œã®ãã³ãã¬ãŒãã®ããŒã¿ããŒã¹ã«æ¥ç¶ããŠã奜ããªãã³ãã¬ãŒããããŠã³ããŒãã§ããŸãã åæºããå¯äžã®ããšïŒæ°ããã¯ã©ã¹ãäœæããããã®çµã¿èŸŒã¿ãã³ãã¬ãŒãã¯ãWindowsãšLinuxã®äž¡æ¹ã§æ²ãã£ãŠåäœããŸãã ã¯ã©ã¹ãäœæããããã®ãŠã£ã¶ãŒãã«ã¯ãå€ãã®é ç®ãæ§æã§ãããŠã£ã³ããŠãããã€ããããŸããã©ã®ã³ã³ã¹ãã©ã¯ã¿ãŒãå¿ èŠããã¯ã©ã¹ã®ã¡ã³ããŒãªã©ã ããããWindowsã®æçµæ®µéã§ã¯ãããçš®ã®ãšã©ãŒãæéå ã«ãããã¢ãããããã®ããã¹ããäžå¯èœã§ããã2ã€ã®ãã¡ã€ã«hãšcppã1ãã€ãã®ãµã€ãºã§äœæãããŸãã Linuxã§ã¯ãäœããã®çç±ã§ãã¶ã€ããŒãéžæã§ããŸãããã¿ãã¯ç©ºã§ãããããŒãã¡ã€ã«ã®ã¿ãåºåã§æ£ããçæãããŸãã äžè¬ã«ããã®ãããªæçãã補åã®å°å æã®ç æ°ã¯ããªããšãªã軜èã«èŠããŸãã
QtCreator 4.8.1ïŒãªãŒãã³ãœãŒã¹çïŒ -ããããããã®ååãèããããªãã¯ããã®ã¢ã³ã¹ã¿ãŒãããã¯ä»ãã®ã¬ãã€ããã£ã¹ããªãã¥ãŒã·ã§ã³ãããã§Qtã®äžã«æçãããããšã«å°æããŠããã§ãããã ããããããã¯æ±çšãããžã§ã¯ãçšã®ç°å¢ã®ãã©ã€ããããŒãžã§ã³ã§ãã ãã®é åžãããã®ééã¯çŽ150 MBã§ãããQtã«åºæã®ãã®ïŒ download.qt.io/official_releases/qtcreator/4.8ïŒã¯å«ãŸããŠããŸããã
å®éã圌ã¯ç§ã®èŠä»¶ã§ç§ãæžããã»ãšãã©ãã¹ãŠãè¿ éãã€æ£ç¢ºã«è¡ãããšãã§ããŸãã WindowsãšLinuxã®äž¡æ¹ã®æšæºããããŒã解æãããã«ãã·ã¹ãã ã«åãããŠã«ã¹ã¿ãã€ãºããè£å®ãªãã·ã§ã³ãææ¡ããæ°ããã¯ã©ã¹ãã¡ãœããæ¬äœã䟿å©ã«çæãããªãã¡ã¯ã¿ãªã³ã°ãšã³ãŒãããã²ãŒã·ã§ã³ãå¯èœã«ããŸãã ãã®åé¡ããã®åé¡ãå æããæ¹æ³ãåžžã«èããã«å¿«é©ã«ä»äºããããã ããªããQtCreatorãèŠãã®ã¯çã«ããªã£ãŠããŸãã
å®éãGradleã§å®å šã«æ©èœããã®ã«ååã§ã¯ãªãã£ããã®ãã€ãŸãIDEãšã®çµ±åã«ã€ããŠã¯ãŸã 話ããããŸããã ã·ã¹ãã ãIDEèªäœã®ãããžã§ã¯ããã¡ã€ã«ãçæããã«ã¯ããããžã§ã¯ãããã«ãããããã®ã³ãã³ãããã§ã«æžã蟌ãŸãããã¹ãŠã®ãœãŒã¹ãã¡ã€ã«ããªã¹ããããããããŒãã¡ã€ã«ãæ€çŽ¢ããŠæ±ºå®ããããã®ãã¹ãå¿ èŠã§ãã
ãã®ç®çã®ããã«ã Gradle `cpp-ide-generator`ã®ãã©ã°ã€ã³ãäœæããGradleãã©ã°ã€ã³ããŒã¿ã«ã§å ¬éããŸããã
ãã©ã°ã€ã³ã¯ããcpp-applicationãããcpp-libraryããããã³ãcpp-unit-testãã§ã®ã¿äœ¿çšã§ããŸãã
build.gradleã§ã®äœ¿çšäŸã次ã«ç€ºããŸãã
plugins { id 'cpp-library' id 'maven-publish' id 'cpp-unit-test' id 'org.bitbucket.akornilov.cpp-ide-generator' version '0.3' } library { // Library specific parameters } // Configuration block of plugin: ide { autoGenerate = false eclipse = true qtCreator = true netBeans = true kdevelop = true }
ãã©ã°ã€ã³ã¯ãäžèšã®ãã¹ãŠã®ã°ã©ãã£ã«ã«éçºç°å¢ãšã®çµ±åããµããŒãããŠããŸããããã©ã°ã€ã³æ§æãããã¯ã§-ideãäžèŠãªIDEã®ãµããŒããç¡å¹ã«ã§ããŸãã
kdevelop = false
autoGenerateãã©ã¡ãŒã¿ãŒã trueã«èšå®ãããŠããå Žåãèš±å¯ãããŠãããã¹ãŠã®IDEã®ãããžã§ã¯ããã¡ã€ã«ããã«ãäžã«èªåçã«çæãããŸãã ãŸããèªåçæã¢ãŒãã§ã¯ããã«ããã¯ãªãŒã³ã¢ããããããšãããžã§ã¯ããã¡ã€ã«ãåé€ãããŸãïŒ gradle clean ã
å¢åçæããµããŒããããŠããŸãã å®éã®æŽæ°ãå¿ èŠãªãã¡ã€ã«ã®ã¿ãæŽæ°ãããŸãã
ãã©ã°ã€ã³ãè¿œå ããç®æšã®ãªã¹ãã¯æ¬¡ã®ãšããã§ãã
- generateIde-èš±å¯ãããŠãããã¹ãŠã®IDEã®ãããžã§ã¯ããã¡ã€ã«ãçæããŸãã
- cleanIde-èš±å¯ãããŠãããã¹ãŠã®IDEã®ãããžã§ã¯ããã¡ã€ã«ãåé€ããŸãã
- generateIde [name]-æå®ãããååïŒIDEãèš±å¯ãããŠããå¿ èŠããããŸãïŒã§IDEã®ãããžã§ã¯ããã¡ã€ã«ãçæããŸãïŒäŸïŒgenerateIdeQtCreatorïŒã
- å©çšå¯èœãªååïŒEclipseãNetBeansãQtCreatorãKDevelopã
- cleanIde [name]-æå®ãããååã®IDEã®ãããžã§ã¯ããã¡ã€ã«ïŒcleanIdeQtCreatorãªã©ïŒãåé€ããŸãã
çæäžããã©ã°ã€ã³ã¯ãã«ãããã¹ãããã£ã³ã°ããããããžã§ã¯ããã¡ã€ã«ãäœæããããã«å¿ èŠãªãã¹ãŠã®æ å ±ãããããæœåºããŸãã ãããžã§ã¯ããéããåŸããã¹ãŠã®ãœãŒã¹ãã¡ã€ã«ãIDEã«è¡šç€ºããããã¹ãŠã®ããããŒãžã®ãã¹ãç»é²ãããæ§æ/ãã«ã/ã¯ãªã¢ã®åºæ¬çãªãã«ãã³ãã³ããæ§æãããŸãã
ç§ãããªããã°ãªããªãã£ã2çªç®ã®ãã©ã°ã€ã³ã¯`cpp-build-tuner`ãšåŒã°ããcpp-application`ã` cpp-library`ããã³ `cpp-unit-test`ãšé£æºããŠåäœããŸãã
ãã©ã°ã€ã³ã«ã¯èšå®ããããŸãããã¢ããããŒãããã ãã§ååã§ãã
plugins { id 'cpp-library' id 'maven-publish' id 'cpp-unit-test' id 'org.bitbucket.akornilov.cpp-build-tuner' version '0.5' }
ãã®ãã©ã°ã€ã³ã¯ãããŸããŸãªãã«ããªãã·ã§ã³ïŒãããã°ãšãªãªãŒã¹ïŒã®ããŒã«ãã§ãŒã³ïŒã³ã³ãã€ã©ãŒãšãªã³ã«ãŒïŒã®èšå®ã§å°ããªæäœãå®è¡ããŸãã MSVCãgccãCLangããµããŒããããŠããŸãã
ããã¯ç¹ã«MSVCã«åœãŠã¯ãŸããŸãããªãªãŒã¹ãã«ãã®çµæãããã©ã«ãã§ã¯bazhdashæ å ±ãšéçã«ãªã³ã¯ãããæšæºã©ã€ãã©ãªãåããçŸçã§ã¯ãªãã倪åããåŸãããããã§ãã Visual Studioèªäœã®MSVCã®èšå®ã®äžéšããã¹ãã€ãããŸãããããã©ã«ãã§ã¯ãC ++ãããžã§ã¯ãã«è¿œå ãããŸãã gcc / CLangãšMSVCã®äž¡æ¹ã«ã€ããŠããªã³ã¯æéã®æé©åããªãªãŒã¹ãããã¡ã€ã«ã«å«ãŸããŠããŸãã
泚ïŒãã©ã°ã€ã³ã¯ãGradle v5.2.1ã®ææ°ããŒãžã§ã³ã§ãã¹ããããŠããã以åã®ããŒãžã§ã³ãšã®äºææ§ã«ã€ããŠã¯ãã¹ããããŠããŸããã
ãã©ã°ã€ã³ã®ãœãŒã¹ã³ãŒããã©ã€ãã©ãªã«Gradleã䜿çšããç°¡åãªäŸïŒéçããã³åçãããã³ãããã䜿çšããã¢ããªã±ãŒã·ã§ã³ã衚瀺ã§ããŸãïŒ bitbucket.org/akornilov/tools next gradle / cppã
ãã®äŸã§ã¯ãåäœãã¹ãã©ã€ãã©ãªã«Google Testã䜿çšããæ¹æ³ã瀺ããŠããŸãã
Gradleã«çµã¿èŸŒãŸããGoogle Test v1.8.1ã䜿çšããMavenãªããžããªãŒïŒã¢ãã¯ãªãïŒã
UPDïŒ
QtCreato rã®WindowsããŒãžã§ã³4.6.2ãããå€ãïŒå°ãªããšããããã®è¡ãæžããŠããæç¹ã§ã¯ãæ倧4.10ãŸã§ïŒMSVC SDKãç解ãããå¿ããããæ¹æ³ãããããŸãã ãã¹ãŠã®std ::ã¹ããŒã¹ã¯èµ€ã§äžç·ãåŒããã玢åŒä»ããæåŠããŸãã ãããã£ãŠãçŸæç¹ã§ã¯ãããŒãžã§ã³4.6.2ã¯Windowsã§ã®äœæ¥ã«æé©ã§ãã
cpp-build-tuner
tuner v1.0ãã©ã°ã€ã³ã®æ°ããããŒãžã§ã³ããªãªãŒã¹ãããŸããïŒ
cpp-ide-generator
v0.5ã¯ãã€ããŒãªæ¹åã§ãïŒã
1ïŒ
cpp-build-tuner
æ§æãããã¯ãè¿œå ããŸããã
buildTuner { lto = false gtest = '1.8.1' libraries { common = ['cutils.lib'] windows = ['ole32', 'user32'] linux = ['pthread', 'z'] } libDirs.common = ['../build/debug', '../release'] }
lto ïŒbooleanïŒ-ãªãªãŒã¹ãã«ãã®LTOãæå¹ãŸãã¯ç¡å¹ã«ããŸãã ããã©ã«ãã§æå¹ã«ãªã£ãŠããŸãã
gtest ïŒæååïŒ-åäœãã¹ãã®Googleãã¹ããµããŒããè¿œå ããŸãã çŸåšãããŒãžã§ã³1.8.1ã®ã¿ãGCCãMinGW-W64ãããã³MSVCã§ãµããŒããããŠããŸãã
ã©ã€ãã©ãª ïŒã³ã³ããïŒ-ãªã³ã¯ããã©ã€ãã©ãªã®ãªã¹ãã ã³ã³ããå ã«ã¯3ã€ã®ãã£ãŒã«ãïŒè¡ã®ãªã¹ãïŒããããŸãïŒ
common
-ä»»æã®ãã©ãããã©ãŒã çšã®ã©ã€ãã©ãªã
windows
-Windowsããã³
linux
ã®ã¿
linux
ã®ã¿ã
libDirs ïŒã³ã³ããïŒ-ãªã³ã«ã§ã©ã€ãã©ãªãæ€çŽ¢ããããã®ãã©ã«ãã®ãªã¹ãã ã³ã³ããæ§é ã¯ãã©ã€ãã©ãªãªã¹ããšåãã§ãã
2ïŒ
cpp-application
ã¢ããªã±ãŒã·ã§ã³ãå®è¡ããæ©èœãè¿œå ãããŸããã ãã©ã°ã€ã³ã¯ããã®ããã«ãããžã§ã¯ãã«è¿œå ã®ã¿ã¹ã¯ãè¿œå ããŸãïŒ
run
ã
runDebug
ïŒ
run
ãšåãïŒããã³
runRelease
ã ã¿ã¹ã¯ã¯
assembleRelease
ãããã
assemble
ã
assembleDebug
ããã³
assembleRelease
äŸåããŸãã
æšæºã®ãJavaã¢ããªã±ãŒã·ã§ã³ãã©ã°ã€ã³ããšåæ§ã«ãèµ·åæã«ã³ãã³ãã©ã€ã³ãã©ã¡ãŒã¿ãŒãæž¡ãããšãã§ããŸãïŒ
gradle run --args="arg1 arg2 ..."
ã
UPD
ãã¹ãã£ã³ã°ãã©ã°ã€ã³ã®å€æŽã«é¢é£ããŠãã°ã«ãŒããå€æŽãããŸããã
plugins { id 'loggersoft.cpp-build-tuner' version '1.1' id 'loggersoft.cpp-ide-generator' version '0.5' }
æ°ãããããžã§ã¯ãã®ã¢ãã¬ã¹ïŒ gradle-cpp.sourceforge.io
ããã¥ã¡ã³ãïŒ
sourceforge.net/p/gradle-cpp/wiki/cpp-build-tuner
sourceforge.net/p/gradle-cpp/wiki/cpp-ide-generator