Stlink: μš°λΆ„νˆ¬ 16.10μ—μ„œ 컴파일

에 λ§Œλ“  2016λ…„ 12μ›” 04일  Β·  12μ½”λ©˜νŠΈ  Β·  좜처: stlink-org/stlink

μ•ˆλ…•ν•˜μ„Έμš”
μ΅œκ·Όμ— μš°λΆ„νˆ¬ 16.10을 μ„€μΉ˜ν–ˆκ³  stlink λ“œλΌμ΄λ²„λ₯Ό μ„€μΉ˜ν•˜λ €κ³ ν•©λ‹ˆλ‹€. λΆˆν–‰νžˆλ„ μ½”λ“œλ₯Ό 컴파일 ν•  수 μ—†μŠ΅λ‹ˆλ‹€. λ‚΄κ°€ λ„λŒ€μ²΄ β€‹β€‹λ­˜ 잘λͺ»ν•˜κ³ μžˆλŠ” κ²λ‹ˆκΉŒ? μš°λΆ„νˆ¬ 16.10에 λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆκΉŒ?

CMakeFiles_output.zip

λ‹€μŒμ€ make release λͺ…λ Ήμ˜ 좜λ ₯μž…λ‹ˆλ‹€.

μ„λ°©ν•˜λ‹€

-C 컴파일러 식별은 GNU 6.2.0μž…λ‹ˆλ‹€.
-μž‘λ™ν•˜λŠ” C 컴파일러 확인 : / usr / bin / cc
-μž‘λ™ν•˜λŠ” C 컴파일러 확인 : / usr / bin / cc-μž‘λ™ 함
-C 컴파일러 ABI 정보 감지
-C 컴파일러 ABI 정보 감지-μ™„λ£Œ
-C 컴파일 κΈ°λŠ₯ 감지
-C 컴파일 κΈ°λŠ₯ 감지-μ™„λ£Œ
cmake / Versionμ—μ„œ CMake 였λ₯˜κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. cmake : 25 (λ¬Έμžμ—΄) :
λ¬Έμžμ—΄ ν•˜μœ„ λͺ…λ Ή REGEX, λͺ¨λ“œ REPLACEμ—λŠ” 총 6 개 μ΄μƒμ˜ μΈμˆ˜κ°€ ν•„μš”ν•©λ‹ˆλ‹€.
λͺ…λ Ή.
호좜 μŠ€νƒ (κ°€μž₯ 졜근 ν˜ΈμΆœλΆ€ν„°) :
CMakeLists. txt : 15 (포함)

-C_SUPPORTS_STD_GNU99 ν…ŒμŠ€νŠΈ μˆ˜ν–‰
-C_SUPPORTS_STD_GNU99 ν…ŒμŠ€νŠΈ μˆ˜ν–‰-성곡
-C_SUPPORTS_WALL ν…ŒμŠ€νŠΈ μˆ˜ν–‰
-C_SUPPORTS_WALL ν…ŒμŠ€νŠΈ μˆ˜ν–‰-성곡
-C_SUPPORTS_WEXTRA ν…ŒμŠ€νŠΈ μˆ˜ν–‰
-ν…ŒμŠ€νŠΈ C_SUPPORTS_WEXTRA μˆ˜ν–‰-성곡
-C_SUPPORTS_WSHADOW ν…ŒμŠ€νŠΈ μˆ˜ν–‰
-ν…ŒμŠ€νŠΈ C_SUPPORTS_WSHADOW μˆ˜ν–‰-성곡
-ν…ŒμŠ€νŠΈ C_SUPPORTS_D_FORTIFY_SOURCE_2 μˆ˜ν–‰
-ν…ŒμŠ€νŠΈ C_SUPPORTS_D_FORTIFY_SOURCE_2 μˆ˜ν–‰-성곡
-C_SUPPORTS_FSTRICT_ALIASING ν…ŒμŠ€νŠΈ μˆ˜ν–‰
-C_SUPPORTS_FSTRICT_ALIASING ν…ŒμŠ€νŠΈ μˆ˜ν–‰-성곡
-C_SUPPORTS_WUNDEF ν…ŒμŠ€νŠΈ μˆ˜ν–‰
-C_SUPPORTS_WUNDEF ν…ŒμŠ€νŠΈ μˆ˜ν–‰-성곡
-C_SUPPORTS_WFORMAT ν…ŒμŠ€νŠΈ μˆ˜ν–‰
-ν…ŒμŠ€νŠΈ C_SUPPORTS_WFORMAT μˆ˜ν–‰-성곡
-C_SUPPORTS_WFORMAT_SECURITY ν…ŒμŠ€νŠΈ μˆ˜ν–‰
-ν…ŒμŠ€νŠΈ C_SUPPORTS_WFORMAT_SECURITY μˆ˜ν–‰-성곡
-C_SUPPORTS_WMAYBE_UNINITIALIZED ν…ŒμŠ€νŠΈ μˆ˜ν–‰
-C_SUPPORTS_WMAYBE_UNINITIALIZED ν…ŒμŠ€νŠΈ μˆ˜ν–‰-성곡
-C_SUPPORTS_WMISSING_VARIABLE_DECLARATIONS ν…ŒμŠ€νŠΈ μˆ˜ν–‰
-C_SUPPORTS_WMISSING_VARIABLE_DECLARATIONS ν…ŒμŠ€νŠΈ μˆ˜ν–‰-μ‹€νŒ¨
-ν…ŒμŠ€νŠΈ C_SUPPORTS_WSHORTEN_64_TO_32 μˆ˜ν–‰
-C_SUPPORTS_WSHORTEN_64_TO_32 ν…ŒμŠ€νŠΈ μˆ˜ν–‰-μ‹€νŒ¨
-C_SUPPORTS_WIMPLICIT_FUNCTION_DECLARATION ν…ŒμŠ€νŠΈ μˆ˜ν–‰
-ν…ŒμŠ€νŠΈ C_SUPPORTS_WIMPLICIT_FUNCTION_DECLARATION μˆ˜ν–‰-성곡
-C_SUPPORTS_WREDUNDANT_DECLS ν…ŒμŠ€νŠΈ μˆ˜ν–‰
-ν…ŒμŠ€νŠΈ μˆ˜ν–‰ C_SUPPORTS_WREDUNDANT_DECLS-성곡
-C_SUPPORTS_FPIC ν…ŒμŠ€νŠΈ μˆ˜ν–‰
-C_SUPPORTS_FPIC ν…ŒμŠ€νŠΈ μˆ˜ν–‰-성곡
-Libusb 발견 : /usr/lib/x86_64-linux-gnu/libusb-1.0.so
-PkgConfig 발견 : / usr / bin / pkg-config (버전 "0.29.1"발견)
- 'gtk + -3.0'λͺ¨λ“ˆ 확인
-gtk + -3.0, 버전 3.20.9 발견
-sys / mman.h μ°ΎκΈ°
-sys / mman.h 찾기-발견
-맨 νŽ˜μ΄μ§€ 생성 λΉ„ν™œμ„±ν™”
-ꡬ성 λΆˆμ™„μ „, 였λ₯˜ λ°œμƒ!
"... / Toolchain / stlink / build / Release / CMakeFiles / CMakeOutput.log"도 μ°Έμ‘°ν•˜μ‹­μ‹œμ˜€.
"... / Toolchain / stlink / build / Release / CMakeFiles / CMakeError.log"λ₯Ό μ°Έμ‘°ν•˜μ‹­μ‹œμ˜€.
Makefile : 42 : 'λΉŒλ“œ / 릴리슀'λŒ€μƒ λ ˆμ‹œν”Ό μ‹€νŒ¨
make : * [λΉŒλ“œ / 릴리슀] 였λ₯˜ 1

그리고 이것은 CMakeError.logμž…λ‹ˆλ‹€.

λ‹€μŒ 좜λ ₯κ³Ό ν•¨κ»˜ C SOURCE FILE ν…ŒμŠ€νŠΈ C_SUPPORTS_WMISSING_VARIABLE_DECLARATIONS μˆ˜ν–‰μ— μ‹€νŒ¨ν–ˆμŠ΅λ‹ˆλ‹€.
디렉터리 λ³€κ²½ : ... / Toolchain / stlink / build / Release / CMakeFiles / CMakeTmp

λΉŒλ“œ λͺ…λ Ή μ‹€ν–‰ : "/ usr / bin / make" "cmTC_f6585 / fast"
make [1] : '... / Toolchain / stlink / build / Release / CMakeFiles / CMakeTmp'디렉토리 μž…λ ₯
/ usr / bin / make -f CMakeFiles / cmTC_f6585.dir / build.make CMakeFiles / cmTC_f6585.dir / build
make [2] : '... / Toolchain / stlink / build / Release / CMakeFiles / CMakeTmp'디렉토리 μž…λ ₯
C 개체 CMakeFiles / cmTC_f6585.dir / src.co λΉŒλ“œ
/ usr / bin / cc -std = gnu99 -Wall -Wextra -Wshadow -D_FORTIFY_SOURCE = 2 -fstrict-aliasing -Wundef -Wformat -Wformat-security -Wmaybe-uninitialized -DC_SUPPORTS_WMISSING_VARIABLE_DECLARATIONS -Wfmissing-variable-declarations -o CMakeFiles / cmTC_Wfmissing-variable-declarations -o dir / src.co -c ... / Toolchain / stlink / build / Release / CMakeFiles / CMakeTmp / src.c
cc : 였λ₯˜ : 인식 ν•  μˆ˜μ—†λŠ” λͺ…λ Ή 쀄 μ˜΅μ…˜ '-Wmissing-variable-declarations'; '-Wmissing-declarations'λ₯Ό 의미 ν–ˆμŠ΅λ‹ˆκΉŒ?
CMakeFiles / cmTC_f6585.dir / build. make : 65 : λŒ€μƒ 'CMakeFiles / cmTC_f6585.dir / src.co'에 λŒ€ν•œ λ ˆμ‹œν”Ό μ‹€νŒ¨
make [2] : * [CMakeFiles / cmTC_f6585.dir / src.co] 였λ₯˜ 1make [2] : '... / Toolchain / stlink / build / Release / CMakeFiles / CMakeTmp'디렉토리 λ‚˜κ°€κΈ°Makefile : 126 : λŒ€μƒ 'cmTC_f6585 / fast'에 λŒ€ν•œ λ ˆμ‹œν”Ό μ‹€νŒ¨make [1] : * [cmTC_f6585 / fast] 였λ₯˜ 2
make [1] : '... / Toolchain / stlink / build / Release / CMakeFiles / CMakeTmp'디렉토리λ₯Ό μ’…λ£Œν•©λ‹ˆλ‹€.

μ†ŒμŠ€ νŒŒμΌμ€ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.
int main (void) {λ°˜ν™˜ 0; }
C SOURCE FILE ν…ŒμŠ€νŠΈ C_SUPPORTS_WSHORTEN_64_TO_32 μˆ˜ν–‰μ΄ μ‹€νŒ¨ν–ˆμœΌλ©° λ‹€μŒ 좜λ ₯이 ν‘œμ‹œλ˜μ—ˆμŠ΅λ‹ˆλ‹€.
디렉토리 λ³€κ²½ : ... / Toolchain / stlink / build / Release / CMakeFiles / CMakeTmp

λΉŒλ“œ λͺ…λ Ή μ‹€ν–‰ : "/ usr / bin / make" "cmTC_04dd3 / fast"
make [1] : '... / Toolchain / stlink / build / Release / CMakeFiles / CMakeTmp'디렉토리 μž…λ ₯
/ usr / bin / make -f CMakeFiles / cmTC_04dd3.dir / build.make CMakeFiles / cmTC_04dd3.dir / build
make [2] : '... Toolchain / stlink / build / Release / CMakeFiles / CMakeTmp'디렉토리 μž…λ ₯
C 개체 CMakeFiles / cmTC_04dd3.dir / src.co λΉŒλ“œ
/ usr / bin / cc -std = gnu99 -Wall -Wextra -Wshadow -D_FORTIFY_SOURCE = 2 -fstrict-aliasing -Wundef -Wformat -Wformat-security -Wmaybe-uninitialized -DC_SUPPORTS_WSHORTEN_64_TO_32 -Wshorten-64-to-32 -o CMakeFiles / cmTC_04dd3.dir / src.co -c ... / Toolchain / stlink / build / Release / CMakeFiles / CMakeTmp / src.c
cc : 였λ₯˜ : 인식 ν•  μˆ˜μ—†λŠ” λͺ…λ Ή 쀄 μ˜΅μ…˜ '-Wshorten-64-to-32'
CMakeFiles / cmTC_04dd3.dir / build. make : 65 : λŒ€μƒ 'CMakeFiles / cmTC_04dd3.dir / src.co'에 λŒ€ν•œ λ ˆμ‹œν”Ό μ‹€νŒ¨
make [2] : * [CMakeFiles / cmTC_04dd3.dir / src.co] 였λ₯˜ 1make [2] : '... / Toolchain / stlink / build / Release / CMakeFiles / CMakeTmp'디렉토리 λ‚˜κ°€κΈ°Makefile : 126 : 'cmTC_04dd3 / fast'λŒ€μƒ λ ˆμ‹œν”Ό μ‹€νŒ¨make [1] : * [cmTC_04dd3 / fast] 였λ₯˜ 2
make [1] : '... / Toolchain / stlink / build / Release / CMakeFiles / CMakeTmp'디렉토리λ₯Ό μ’…λ£Œν•©λ‹ˆλ‹€.

μ†ŒμŠ€ νŒŒμΌμ€ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.
int main (void) {λ°˜ν™˜ 0; }

bucompilation bufixed errocompilation olinux statuduplicate staturesolved

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

문제 해결됨. libusb 헀더가 λˆ„λ½λ˜μ—ˆμŠ΅λ‹ˆλ‹€ :-). λ°©ν•΄ν•΄μ„œ μ£„μ†‘ν•©λ‹ˆλ‹€.

λͺ¨λ“  12 λŒ“κΈ€

(κ·€ν•˜μ˜) cmake (버전)이 https://github.com/texane/stlink/blob/master/cmake/Version.cmake#L25 -L26에 μ§ˆμ‹ν•˜λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€.

cmake --version 싀행쀑인 버전은 λ¬΄μ—‡μž…λ‹ˆκΉŒ?
μš°λΆ„νˆ¬ νŒ¨ν‚€μ§€ λͺ©λ‘μ„ 보면 3.5.x (http://packages.ubuntu.com/yakkety/cmake)λ₯Ό μ‹€ν–‰ν•΄μ•Όν•©λ‹ˆλ‹€.

응닡 ν•΄ μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€.

cmake 버전 3.5.2μž…λ‹ˆλ‹€.
μ–΄λ–»κ²Œ ν•΄κ²°ν•  수 μžˆμŠ΅λ‹ˆκΉŒ? λ‚˜λŠ”μ΄ 주제의 μ΄ˆλ³΄μžμž…λ‹ˆλ‹€

이 문제λ₯Ό μ‘°μ‚¬ν•΄μ•Όν•©λ‹ˆλ‹€. cmake 3.0 (debian 8) 및 3.7 (mac osx)μ—λŠ” λ¬Έμ œκ°€ μ—†μŠ΅λ‹ˆλ‹€. git clone ν–ˆκ±°λ‚˜ μ†ŒμŠ€κ°€ 포함 된 zip νŒŒμΌμ„ λ‹€μš΄λ‘œλ“œ ν–ˆμŠ΅λ‹ˆκΉŒ?

zip νŒŒμΌμ„ λ‹€μš΄λ‘œλ“œν–ˆμŠ΅λ‹ˆλ‹€

μˆ˜μ •μ„ μ œμ•ˆν–ˆμŠ΅λ‹ˆλ‹€. 그것은 git νŠΈλ¦¬μ—μ„œ κ°œλ°œν•˜κ³  λΉŒλ“œν–ˆκΈ° λ•Œλ¬Έμ΄λ©° (그리고 gitμ—μ„œ 버전 감지) zipfile μ†ŒμŠ€ λΉŒλ“œμ— λŒ€ν•΄ ν™•μΈν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.

μ‹ κ³  ν•΄ μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€. μ§€κΈˆ μž‘λ™ν•©λ‹ˆλ‹€!

이 문제λ₯Ό (λ˜ν•œ) 이전 git λ²„μ „μ—μ„œ μˆ˜μ •ν•΄μ•Όν•©λ‹ˆλ‹€. λ‹€μ‹œ μ—΄λ©΄ 계속 톡합 λΉŒλ“œκ°€ μ‹€νŒ¨ν•œ 것 κ°™μŠ΅λ‹ˆλ‹€.

μˆ˜λ™ ν…ŒμŠ€νŠΈ

  • Debian 8, cmake 3.0, git 버전 ??
  • Mac OS X, cmake 3.7, git 버전 2.9.3 (Apple Git-75)

깨진

  • Ubuntu? 버전 12? Travis CI (> μ—¬κΈ° <에보고 된 μ •ν™•ν•œ 버전 ν•„μš”)

λ‚˜λ„ Ubuntu 16.04 LTS, cmake 버전 3.5.1 μ—μ„œμ΄ λΉŒλ“œ 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€.

둜그의 였λ₯˜ :
인식 ν•  μˆ˜μ—†λŠ” λͺ…λ Ή 쀄 μ˜΅μ…˜ '-Wmissing-variable-declarations'
인식 ν•  μˆ˜μ—†λŠ” λͺ…λ Ή 쀄 μ˜΅μ…˜ '-Wshorten-64-to-32'

@newtoniant 이것은 μ΅œμ‹  zip 파일 (master.zip)을 μ‚¬μš©ν•  λ•Œ 관련이 μ—†μ–΄μ•Όν•©λ‹ˆλ‹€. 컀밋 https://github.com/texane/stlink/commit/0c63a2cffc7b7fca817d4c7fb896dbe696341ea3 이 문제λ₯Ό ν•΄κ²°ν•΄μ•Όν•©λ‹ˆλ‹€.

마무리, v1.3.0 μ€€λΉ„. μƒˆ 버전이 μΆœμ‹œ 된 ν›„ μ–Έμ œλ“ μ§€ μƒˆ 문제λ₯Ό μ—΄ β€‹β€‹μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.

Fedora 25 (gcc 6.3.1, cmake 3.6.2)μ—μ„œ git checkout 1.3.1; make debug 둜 git treeμ—μ„œ λΉŒλ“œ ν•  λ•Œλ„ λ‚˜νƒ€λ‚©λ‹ˆλ‹€. CMakeOutput.log 및 CMakeError.log κ°€ μ²¨λΆ€λ©λ‹ˆλ‹€.

특히 였λ₯˜λŠ” λ™μΌν•©λ‹ˆλ‹€.

λ‹€μŒ 좜λ ₯κ³Ό ν•¨κ»˜ C SOURCE FILE ν…ŒμŠ€νŠΈ C_SUPPORTS_WMISSING_VARIABLE_DECLARATIONS μˆ˜ν–‰μ— μ‹€νŒ¨ν–ˆμŠ΅λ‹ˆλ‹€.
...
/ usr / lib64 / ccache / cc -std = gnu99 -Wall -Wextra -Wshadow -D_FORTIFY_SOURCE = 2 -fstrict-aliasing -Wundef -Wformat -Wformat-security -Wmaybe-uninitialized -DC_SUPPORTS_WMISSING_VARIABLE_DECLARATIONS -Wmissing-variable-declarations -o CMakes / declarations cmTC_df367.dir / src.co -c /home/blablabla/stlink/build/Release/CMakeFiles/CMakeTmp/src.c
cc : 였λ₯˜ : 인식 ν•  μˆ˜μ—†λŠ” λͺ…λ Ή 쀄 μ˜΅μ…˜ '-Wmissing-variable-declarations'; '-Wmissing-declarations'λ₯Ό 의미 ν–ˆμŠ΅λ‹ˆκΉŒ?

...

C SOURCE FILE ν…ŒμŠ€νŠΈ C_SUPPORTS_WSHORTEN_64_TO_32 μˆ˜ν–‰μ΄ μ‹€νŒ¨ν–ˆμœΌλ©° λ‹€μŒ 좜λ ₯이 ν‘œμ‹œλ˜μ—ˆμŠ΅λ‹ˆλ‹€.
...
/ usr / lib64 / ccache / cc -std = gnu99 -Wall -Wextra -Wshadow -D_FORTIFY_SOURCE = 2 -fstrict-aliasing -Wundef -Wformat -Wformat-security -Wmaybe-uninitialized -DC_SUPPORTS_WSHORTEN_64_TO_32 -Wshorten-64-to-32 -o CMakeFiles / cmTC_0ceee.dir / src.co -c /home/blablabla/stlink/build/Release/CMakeFiles/CMakeTmp/src.c
cc : 였λ₯˜ : 인식 ν•  μˆ˜μ—†λŠ” λͺ…λ Ή 쀄 μ˜΅μ…˜ '-Wshorten-64-to-32'

문제 재개λ₯Ό μš”μ²­ν•©λ‹ˆλ‹€.

문제 해결됨. libusb 헀더가 λˆ„λ½λ˜μ—ˆμŠ΅λ‹ˆλ‹€ :-). λ°©ν•΄ν•΄μ„œ μ£„μ†‘ν•©λ‹ˆλ‹€.

κ°€μž₯ μ‰¬μš΄ 해결책은 .git 디렉토리λ₯Ό μ œκ±°ν•˜κ³  λ‹€μ‹œ μ‹œλ„ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.
rm -r build && sudo rm -rf .git && make
Linux Mint 18.3 및 μ•„λ§ˆλ„ λͺ¨λ“  κ³³μ—μ„œ μž‘λ™ν•©λ‹ˆλ‹€.
μ•„, 그리고 sudo ldconfig 이후에 sudo make install sudo ldconfig λ₯Ό μ‹€ν–‰ν•˜λŠ” 것을 μžŠμ§€ λ§ˆμ„Έμš”.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰