- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在通过 Cygwin 在 window 7 上构建 OpenOCD 并收到此消息
openocd-0.7.0/jimtcl/jim.c:3009: undefined reference to `isascii'
collect2: error: ld returned 1 exit status
Makefile:45: recipe for target 'jimsh.exe' failed
make[2]: *** [jimsh.exe] Error 1
也许 Cygwin 中不存在“isascii”的库我按照以下步骤进行构建:
最佳答案
MinGW 发行版也会出现同样的问题。如 http://pubs.opengroup.org/onlinepubs/009696699/basedefs/ctype.h.html 中所示, isascii()
在 <ctype.h>
中定义是 ISO C 标准的扩展。因此,没有必要可用。如上所述,不推荐使用不带下划线的名称,从 Visual C++ 2005 运行时库开始(安装较旧的 MSVCRT 运行时将无济于事)。
因此,使用 __isascii()
变体是正确的。
但是,较早安装的带有 GCC 4.6.1 的 MinGW 运行时接受 isascii()
没有给出错误。那是因为它是在 libmoldname.a
中定义的( -lmoldname
) - GCC 用于链接的库之一。在最新版本的 MinGW 中,libmoldname.a
已更改以删除一些旧功能,包括 isascii()
.目标文件 isascii.o
已从此库中删除。这些链接与此删除相关:
sourceforge.net/apps/trac/mingw-w64/changeset/5807/trunk
sourceforge.net/p/mingw-w64/mailman/mingw-w64-public/thread/51751223.2020804@videolan.org/
http://marc.info/?l=mingw-patches&m=107980328623432
不幸的是,<ctype.h>
仍然定义 isascii()
没有下划线。因此,此错误仅出现在链接阶段。
如果出于任何原因无法更改代码,请使用旧版本的 MinGW 或 Cygwin 进行构建。检查发行版是否支持 isascii()
输入:
objdump -t c:/mingw/lib/libmoldname.a | grep "isascii"
输出应该为空(不支持)或:
isascii.o: file format pe-i386
[ 0](sec -2)(fl 0x00)(ty 0)(scl 103) (nx 1) 0x00000000 isascii.c
[ 2](sec 1)(fl 0x00)(ty 20)(scl 2) (nx 1) 0x00000000 _isascii
顺便说一句,不需要添加 -lmoldname
至 $LDFLAGS
, GCC 会自动添加这个库。
关于c - 在 Win 7 (cygwin) 中构建 OpenOCD 时如何解决 "undefined reference to ` isascii'",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19564168/
根据 isascii() 联机帮助页: http://linux.die.net/man/3/isascii POSIX.1-2008 marks isascii() as obsolete, not
我正在使用 Windows 10 和 Pycharm IDE。.isascii() 在 google colab 上不起作用是否有原因?当我在 google colab 上尝试代码片段时,我得到: A
我正在通过 Cygwin 在 window 7 上构建 OpenOCD 并收到此消息 openocd-0.7.0/jimtcl/jim.c:3009: undefined reference to `
我是一名优秀的程序员,十分优秀!