2015-11-20 69 views
0

因此,我最終清除了C文件中的所有錯誤和警告,並繼續將它們鏈接起來。 我有2 C文件,我需要鏈接編譯器。有2個C文件,我需要鏈接編譯器

et5ibwqm0.c intfac_fl.c 

我提供的編譯命令:

gcc -shared -o et5stcklib.so et5ibwqm0.o intfac_fl.o -L$FGLDIR/lib 

不工作,我得到這個錯誤:

et5ibwqm0.o: could not read symbols: File in wrong format 
collect2: ld returned 1 exit status 
+2

嘗試使用「file」命令查看它在「et51bwqm0.o」和「intfac_fl.o」上的報告。此外,它將有助於查看用於編譯它們的命令。 – ash

+0

編譯器編譯**鏈接器** ... – Olaf

+2

@Olaf'gcc'命令隱藏了區別,因爲它從選項中找出它是否應該編譯或鏈接。 – Barmar

回答

0

我不記得,但你應該預先編譯C文件。 對於:

  1. GCC -c et5ibwqm0.c
  2. GCC -c intfac_fl.c
0

您使用Informix標記這一點。您試圖從4GL程序中調用這些C模塊,因此需要將它們組合成通用可執行文件?

如果是這樣,只需在編譯指令中包含所有源模塊。假設c4gl,是這樣的:

c4gl main.4gl others.4gl et5ibwqm0.c intfac_fl.c -o mainwithccalls.4ge

0

原來這只是造成編譯器拒絕的一個缺失的-m32符對象 - user5586678