簡體   English   中英

在linux上編譯windows 64程序的問題 - 標題

[英]Problems compiling windows 64 program on linux - headers

我一直在嘗試在Linux上編譯一個Windows 64程序,MSVAR1.3,並且在Linux和程序調用的頭文件方面遇到了問題。 該計划要求:

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <math.h>
#ifdef __BORLANDC__
    #include <float.h>

如果我運行編譯(在linux中使用gcc)並嘗試使用-I標志來告訴它標題的位置,那么它比沒有標題的情況下運行編譯要好得多。 我已經包含了下面的一些輸出(我得到了近300行無法識別的變量)。

我也嘗試使用-lm標志為數學庫運行它,這減少了無法識別的錯誤,但如果有其他標題庫的標志,我無法找到它們。 請幫忙!!!!

(使用-I標志運行的錯誤:)

gcc msvar1.3.c -o msvar1.3 -lm/tmp/ccpZIkC1.o: In function `main':
msvar1.3.c:(.text+0x38): undefined reference to `opengfsr'
msvar1.3.c:(.text+0x927): undefined reference to `gfsr8'
msvar1.3.c:(.text+0x94c): undefined reference to `gfsr8'
msvar1.3.c:(.text+0x971): undefined reference to `gfsr8'
msvar1.3.c:(.text+0x9a2): undefined reference to `disrand'
msvar1.3.c:(.text+0x111a): undefined reference to `printerr'
msvar1.3.c:(.text+0x1809): undefined reference to `printerr'
msvar1.3.c:(.text+0x1ad2): undefined reference to `printerr'
msvar1.3.c:(.text+0x1be6): undefined reference to `gfsr8'
msvar1.3.c:(.text+0x2773): undefined reference to `closegfsr'
msvar1.3.c:(.text+0x2791): undefined reference to `closegfsr'
/tmp/ccpZIkC1.o: In function `treesummary':
msvar1.3.c:(.text+0x2808): undefined reference to `printerr'
/tmp/ccpZIkC1.o: In function `read_params':
msvar1.3.c:(.text+0x2b1f): undefined reference to `printerr'
msvar1.3.c:(.text+0x2b64): undefined reference to `printerr'
msvar1.3.c:(.text+0x2b72): undefined reference to `intrand'
msvar1.3.c:(.text+0x2bb7): undefined reference to `printerr'
msvar1.3.c:(.text+0x3000): undefined reference to `printerr'
msvar1.3.c:(.text+0x3063): undefined reference to `printerr'
msvar1.3.c:(.text+0x3077): undefined reference to `printerr'
/tmp/ccpZIkC1.o: In function `choosepar':
msvar1.3.c:(.text+0x36fb): undefined reference to `gfsr8'
msvar1.3.c:(.text+0x374b): undefined reference to `gfsr4'
msvar1.3.c:(.text+0x3799): undefined reference to `gfsr4'
msvar1.3.c:(.text+0x37b8): undefined reference to `norm4'
msvar1.3.c:(.text+0x37e5): undefined reference to `gfsr4'
msvar1.3.c:(.text+0x3826): undefined reference to `norm4'
msvar1.3.c:(.text+0x3853): undefined reference to `gfsr4'
msvar1.3.c:(.text+0x3894): undefined reference to `norm4'
msvar1.3.c:(.text+0x38f7): undefined reference to `norm4'

“未定義的引用”錯誤不是來自缺少的標題 - 它們是鏈接器錯誤,表明您沒有鏈接到對象,也沒有指定庫的-l(減號)標志,導出這些符號。 標題只構成一個承諾,即在鏈接時提供的對象/庫中可以找到與標題聲明匹配的變量和行外函數 - 您正在破壞該承諾。

您需要找到包含這些符號的庫,或者找到源並編譯它們。

我用命令編譯了msvar1.3

gcc -o msvar1.3 myutil.c msvar1.3.c -lm

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM