Stlink: 在Ubuntu 16.10上编译

创建于 2016-12-04  ·  12评论  ·  资料来源: stlink-org/stlink

你好
我最近安装了ubuntu 16.10,正在尝试安装stlink驱动程序。 不幸的是我无法编译代码。 我究竟做错了什么? ubuntu 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 /版本上的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: * [build / Release]错误1

这是CMakeError.log:

执行C源文件测试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 -Wmissing-variable-CMclaration -C dir / src.co -c ... /工具链/stlink/build/Release/CMakeFiles/CMakeTmp/src.c
抄送:错误:无法识别的命令行选项'-Wmissing-variable-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源文件测试C_SUPPORTS_WSHORTEN_64_TO_32失败,并显示以下输出:
更改目录:... /工具链/链接/构建/发布/ 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 / oCM cmTC_04dd3.dir / src.co -c ... /工具链/ stlink / build /发行/CMakeFiles/CMakeTmp/src.c
抄送:错误:无法识别的命令行选项'-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 :

您正在运行哪个版本的cmake --version
如果我查看ubuntu软件包列表,则应该运行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,这在使用较新的zipfile(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树构建时也会出现此问题。 附有CMakeOutput.logCMakeError.log

特别是,错误是相同的:

执行C源文件测试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尚未初始化-DC_SUPPORTS_WMISSING_VARIABLE_DECLARATIONS -Wakess-变量-可变cmTC_df367.dir / src.co -c /home/blablabla/stlink/build/Release/CMakeFiles/CMakeTmp/src.c
抄送:错误:无法识别的命令行选项'-Wmissing-variable-declarations'; 您是说“-遗失声明”吗?

...

执行C源文件测试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 CMakeFiles / cmTC_0ceee.dir / src.co -c /home/blablabla/stlink/build/Release/CMakeFiles/CMakeTmp/src.c
抄送:错误:无法识别的命令行选项'-Wshorten-64-to-32'

要求重新打开该问题。

问题解决了。 我缺少libusb标头:-)。 很抱歉打扰。

最简单的解决方案是删除.git目录,然后重试:
rm -r build && sudo rm -rf .git && make
它可以在Linux Mint 18.3上运行,甚至可以在任何地方使用。
哦,别忘了在sudo ldconfig之后运行sudo make install

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

lkord picture lkord  ·  14评论

maked0n picture maked0n  ·  8评论

Hamid-Najafi picture Hamid-Najafi  ·  8评论

bolorkhuu picture bolorkhuu  ·  11评论

rayslinky picture rayslinky  ·  12评论