我尝试在我的c源代码上使用make并创建可执行文件。但是可执行文件无法完成预期的任务。即使make文件编译并生成可执行文件,当我尝试单独编译.c文件时,它给出了许多未定义的引用问题 错误是
/tmp/cc4tx0BG.o: In function `main':
cubist.c:(.text+0xdc): undefined reference to `Of'
cubist.c:(.text+0xe7): undefined reference to `Of'
cubist.c:(.text+0xfa): undefined reference to `Of'
cubist.c:(.text+0x10f): undefined reference to `KRInit'
cubist.c:(.text+0x114): undefined reference to `ExecTime'
cubist.c:(.text+0x127): undefined reference to `PrintHeader'
cubist.c:(.text+0x139): undefined reference to `Of'
[...]
cubist.c:(.text+0xb79): undefined reference to `MaxAtt'
cubist.c:(.text+0xb83): undefined reference to `InitialiseEnvData'
cubist.c:(.text+0xb8a): undefined reference to `XVAL'
cubist.c:(.text+0xb93): undefined reference to `CrossVal'
cubist.c:(.text+0xb9a): undefined reference to `SingleCttee'
cubist.c:(.text+0xb9f): undefined reference to `ExecTime'
cubist.c:(.text+0xbab): undefined reference to `Of'
collect2: error: ld returned 1 exit status
拜托,任何机构都可以告诉我们如何在Linux工作中使用make和构建可执行文件。
答案 0 :(得分:0)
我认为(不确定)你说你使用Make成功生成了一个可执行文件(至少我的解释是“在我的c源代码上使用make并创建可执行文件” - 如果我错了,请纠正我!)。如果是这种情况,请调用make:make -B --trace
,然后您将看到用于构建可执行文件的确切命令,然后您将希望知道在尝试时错过了哪些编译器/链接器标记或库手动构建东西。