【发布时间】:2014-07-27 23:42:29
【问题描述】:
我最近从 Windows 7 迁移到 Linux (Ubuntu 14.04) 并想编译我制作的 C 程序。该程序使用 GNU GCC 编译器的基本设置在 Codeblocks 12.11 下完美运行。在 linux 下使用 GNU GCC 编译器的基本设置在 Codeblocks 13.12 下编译时,我收到以下错误消息:
对 __mingw_vprintf 的未定义引用
未定义对 __chstk.ms 的引用
未定义的 _fopen 引用
... 以fscanf、malloc 等等...
我是 Linux 新手,我不习惯 C 编码,甚至一般的编程。有人知道发生了什么吗?
【问题讨论】:
-
您的链接器有问题。也许你需要调整你的项目依赖(包含)列表。
-
正如@FiddlingBits 所指出的,您缺少一些链接器依赖项。我不确定您是如何配置 C::B 的,但看起来您正在尝试使用 MinGW 编译器。您是否已将项目的编译器配置切换为使用平台的 GNU C 编译器而不是 MinGW 编译器?它可能是特定于项目的设置,而不是全局 C::B 设置,因为它仍在寻找 MinGW 的内容,并且您已从 Windows 迁移到 Linux。
-
奇怪的是,您收到关于
__mingw_vprintf的错误。您的程序是否专门调用此函数?或者您是否试图链接您在 Windows 下编译的目标文件或库? (与您应该做的相反,即完全重建所有二进制文件)
标签: c mingw codeblocks