μλ
νμΈμ
μ΅κ·Όμ μ°λΆν¬ 16.10μ μ€μΉνκ³ stlink λλΌμ΄λ²λ₯Ό μ€μΉνλ €κ³ ν©λλ€. λΆννλ μ½λλ₯Ό μ»΄νμΌ ν μ μμ΅λλ€. λ΄κ° λλ체 ββλ μλͺ»νκ³ μλ κ²λκΉ? μ°λΆν¬ 16.10μ λ¬Έμ κ° μμ΅λκΉ?
λ€μμ 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
λ€μ μΆλ ₯κ³Ό ν¨κ» 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; }
(κ·νμ) 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 λ²μ μμ μμ ν΄μΌν©λλ€. λ€μ μ΄λ©΄ κ³μ ν΅ν© λΉλκ° μ€ν¨ν κ² κ°μ΅λλ€.
μλ ν μ€νΈ
κΉ¨μ§
λλ 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
λ₯Ό μ€ννλ κ²μ μμ§ λ§μΈμ.
κ°μ₯ μ μ©ν λκΈ
λ¬Έμ ν΄κ²°λ¨. libusb ν€λκ° λλ½λμμ΅λλ€ :-). λ°©ν΄ν΄μ μ£μ‘ν©λλ€.