当前位置: 首页 > 知识库问答 >
问题:

64位db2db2api的链接问题。lib被截断以适应错误

高展
2023-03-14

我有 64 位的 db2 express 和 cygwin 安装。我正在尝试一个非常简单的测试并运行:

GCC ex1.o -o ex1.exe ../../sqllib/lib/db2api.lib

../../sqllib/lib/db 2 API . lib(db 2 app 64 . dll . b):(。text 0x2):重定位被截断以适应:R_X86_64_32与中定义的符号< code>__imp_sqlastrt'。idata$5部分在../../sqllib/lib/db 2 API . lib(db 2 app 64 . dll . b)../../sqllib/lib/db 2 API . lib(db 2 app 64 . dll . b):(。text 0x2):重定位被截断以适应:R_X86_64_32与中定义的符号 _ _ imp _ SQL aloc '相对应。idata$5部分在../../sqllib/lib/db 2 API . lib(db 2 app 64 . dll . b)../../sqllib/lib/db 2 API . lib(db 2 app 64 . dll . b):(。text 0x2):根据中定义的符号“__imp_sqlasetdata ”,重定位被截断以适应:R_X86_64_32。idata$5部分在../../sqllib/lib/db 2 API . lib(db 2 app 64 . dll . b)等..

我尝试了所有 -mcmodel 选项都无济于事。除此之外,我找不到太多解决这个问题的方法。我需要做什么才能使其正确链接?

(与上一篇文章的问题相同,但经过大量搜索,似乎其他人已经找到了与上述内容非常相似的东西,可能是在32位机器上)

共有1个答案

邵博艺
2023-03-14

如果您使用的是< code > binutils 2.24版,我怀疑问题在于:https://sourceware.org/bugzilla/show_bug.cgi?id=16598

幸运的是,GNU ld 的 Cygwin 移植能够直接链接 DLL。 指定相关的 DLL 而不是导入库 db2api.libgcc 应该可以。

 类似资料:
  • 虽然我对Objective-C开发很熟悉,但当涉及错误解释时,我仍然认为自己有点像n00b。我在申请别人也在做的工作。我相信我们可能有不同版本的Xcode,一个开发者有一台PC(其他人和我有一台MacBook)。我使用的是Xcode 4.5.1。 问题所在 Apple clang版本4.1(Tags/Apple/Clang-421.11.66)(基于LLVM 3.1 SVN)目标:i386-App

  • 问题内容: 如果我使用64位JDK编译了一些Java文件,然后制作出一个JAR文件,那么生成的JAR是否可以在32位JRE上正常工作,还是我必须使用32位JDK? 谢谢 问题答案: 生成的JAR将与32位JRE一起正常工作。您不需要重新编译jar。

  • 问题内容: 我有一个32位.so二进制库,我必须生成使用它的64位程序。有没有办法包装或转换它,使其可以与64位程序一起使用? 问题答案: 不能。您不能直接链接到64位程序内部的32位代码。 最好的选择是编译一个可以在64位平台上运行的32位(独立)程序(使用ia32),然后使用一种进程间通信的形式从64位程序与其进行通信。

  • 我正在用NXP的I.MXRT系列Cortex-M7芯片开发一个嵌入式系统。我需要一些C函数在RAM(ITCM)中,而不是在闪存中。ITCM的地址从0x00000000开始,闪存从0x60000000开始。因此,位于Flash调用的函数位于ITCM的函数将执行一个长分支。但它会出现编译错误 (. ARM.exidx.itcm.text0x0):重新定位被截断以适合:R_ARM_PREL31对.itc

  • 问题内容: 断项链 您有N条红色,白色或蓝色珠子(3 <= N<=350)的项链,其中有些是红色的,有些是蓝色的,其他的是白色的,随机排列。这是n = 29的两个示例: 图片中标记了以下文字中第一和第二个珠子。 图A中的配置可以表示为b和r的字符串,其中b代表蓝色的珠子,r代表红色的珠子,如下所示:brbrrrbbbrrrrrbrrbbrbbbbbrrrrb。 假设您要折断项链,将其笔直摆放,然后

  • 我想知道是否有人能够在基于ARM的Debian发行版上成功地使用Netty Epoll本机传输?我已经下载了netty-transport-native-epoll-4.1。1.Final-20160526.120605-1。jar文件并将其放置在我的类路径中,但是当我尝试运行我的应用程序时,我得到以下错误: 我之前看到一篇文章谈到使用纯java实现,这就是我认为我正在使用的,但是基于ELFCLA

  • 问题内容: 我有一个控制器,可提供对信息的RESTful访问: 我遇到的问题是,如果我使用带有特殊字符的路径变量访问服务器,则会被截断。例如: http:// localhost:8080 / blah-server / blah / get / blah2010.08.19-02:25:47 参数blahName将为blah2010.08 但是,对request.getRequestURI()的