1. 程式人生 > >gcc引數錯誤導致的makefile錯誤

gcc引數錯誤導致的makefile錯誤

今天寫一個小makefile檔案,出現以下錯誤:

linux:/mnt/hgfs/vmware-share # make
cc -o my_bin.o my_bin.c
cc -o my_bin my_bin.o
my_bin.o:(.rodata+0x0): multiple definition of `_fp_hw'
/usr/lib/gcc/i586-suse-linux/4.0.2/../../../crt1.o:../sysdeps/i386/elf/start.S:65: first defined here
my_bin.o: In function `__data_start':
: multiple definition of `__dso_handle'
/usr/lib/gcc/i586-suse-linux/4.0.2/crtbegin.o:(.data+0x0): first defined here
my_bin.o: In function `_init':
/usr/src/packages/BUILD/glibc-2.3/cc/csu/crti.S:34: multiple definition of `_init'
/usr/lib/gcc/i586-suse-linux/4.0.2/../../../crti.o:/usr/src/packages/BUILD/glibc-2.3/cc/csu/crti.S:12: first defined here
my_bin.o: In function `_start':
../sysdeps/i386/elf/start.S:65: multiple definition of `_start'
/usr/lib/gcc/i586-suse-linux/4.0.2/../../../crt1.o:../sysdeps/i386/elf/start.S:65: first defined here
my_bin.o: In function `_fini':
/usr/src/packages/BUILD/glibc-2.3/cc/csu/crti.S:50: multiple definition of `_fini'
/usr/lib/gcc/i586-suse-linux/4.0.2/../../../crti.o:/usr/src/packages/BUILD/glibc-2.3/cc/csu/crti.S:12: first defined here
my_bin.o: In function `__i686.get_pc_thunk.bx':
/usr/src/packages/BUILD/glibc-2.3/cc/csu/crtn.S:35: multiple definition of `__i686.get_pc_thunk.bx'
/usr/lib/gcc/i586-suse-linux/4.0.2/../../../crti.o:/usr/src/packages/BUILD/glibc-2.3/cc/csu/crti.S:12: first defined here
my_bin.o:(.got.plt+0x0): multiple definition of `_GLOBAL_OFFSET_TABLE_'
/usr/lib/gcc/i586-suse-linux/4.0.2/../../../crt1.o:../sysdeps/i386/elf/start.S:65: first defined here
my_bin.o:(.rodata+0x4): multiple definition of `_IO_stdin_used'
/usr/lib/gcc/i586-suse-linux/4.0.2/../../../crt1.o:../sysdeps/i386/elf/start.S:71: first defined here
my_bin.o: In function `__data_start':
: multiple definition of `__data_start'
/usr/lib/gcc/i586-suse-linux/4.0.2/../../../crt1.o:../sysdeps/i386/elf/start.S:65: first defined here
collect2: ld returned 1 exit status
make: *** [my_bin] 錯誤 1

makefile檔案:

CC=gcc
INSTDIR=/usr/local/bin/

my_bin : my_bin.o
	$(CC) -o my_bin my_bin.o

my_bin.o : my_bin.c public.h
	$(CC) -o my_bin.o my_bin.c

install : my_bin
	if [ -d $(INSTDIR)]; then \
		cp my_bin $(INSTDIR); \
		chmod a+x $(INSTDIR)/my_bin; \
		echo "install to $(INSTDIR) success"; \
	else \
		echo "sorry, $(INSTDIR) is not exist"; \
	fi    
    
clean:
	rm my_bin my_bin.o

剛開始對這個錯誤摸不著頭腦,後來發現是gcc 引數搞錯了。

即紅色部分應該為:$(CC) -c my_bin.c



相關推薦

gcc引數錯誤導致makefile錯誤

今天寫一個小makefile檔案,出現以下錯誤: linux:/mnt/hgfs/vmware-share # make cc -o my_bin.o my_bin.c cc -o my_bin my_bin.o my_bin.o:(.rodata+0x0): multip

org.apache.solr.common.SolrException: Request-URI Too Large(solr query操作因為引數過多導致uri過長錯誤

原文連結: org.apache.solr.common.SolrException: Request-URI Too Large   採用post提交url提交方式有兩種,一種是get方式,一種是post方式 sol查詢的時候添加個引數   &nb

虛擬機器塊裝置掛載引數錯誤導致無法開機問題處理

故障現象 給虛擬機器增加一個卷後,重啟無法進入系統。   故障原因 /etc/fstab中填寫的檔案系統型別與分割槽實際檔案系統不一致。   處理方法 將虛擬機器系統卷掛載到其他虛擬機器上,修改/etc/fstab為正確配置。   排查過程 同事給一臺虛擬機器

前後端分離。前端POST請求引數過長,導致400錯誤解決辦法及分析

這兩天做好的功能要上線了。但是測試的時候忽然發現當POST提交資料量多大時,會導致後端報400錯誤。最開始以為瓶頸存在於tomcat,因為tomcat預設能接受的POST請求大小為2M,所以手動修改tomcat server.xml 檔案,將接受POST大小修改為不限制。

axios 請求引數格式與後臺不對應導致415錯誤

用axios請求後臺資料的時候,預設的頭部配置是 Content-Type: application/x-www-form-urlencoded;charset=UTF-8 這樣的話,data的配置格式和傳遞的格式就是一樣的,都是是json鍵值對 data:{"toke

安裝錯誤gcc導致一些錯誤

出現如下錯誤: make: arm-linux-gnueabihf-gcc: Command not found   CHK     include/generated/uapi/linux/version.h   CHK     include/generated/uts

gc引數設定錯誤導致一直full gc

gc param JAVA_OPTS="${JAVA_OPTS} -Xms1g -Xmx1g -XX:NewSize=512m -XX:MaxNewSize=1g -Xss512k -XX:SurvivorRatio=6" JAVA_OPTS="${J

munmap引數錯誤導致程序空間異常

去年在現場遇到一個問題,使用mmap操作檔案的時候,總是莫名奇妙的core,用gdb 命令info file檢視程序空間,發現stack棧空間非常大,覺得莫名其妙。後來發現是munmap傳入的len引數錯誤,導致系統刪除了不該刪除的記憶體。一直以為kernel會

錯誤修改初始化引數檔案導致oracle啟動失敗!

如果錯誤的修改了引數檔案導致資料庫不能啟動,由於spfile是採用的二進位制檔案,不能直接修改。 可以通過spfile建立pfile,手動修改pfile,利用pfile啟動資料庫,然後再通過pfile建立spfile: SQL> startup ORACLE 例程已經

gcc優化導致錯誤

在MyOS中,有這樣一段系統呼叫程式碼:void sys_win_draw(regs_t reg){  HWND  hWnd = (HWND)reg.ebx;  unsigned long* buffer = (unsigned long*)reg.ecx;  DrawWin

oracle11g的內存分配不當,導致錯誤ORA-01034,ORA-00838,ORA-27101

ora- service listener replace cnblogs oracleo file admin tor 由於開發需要,oracle11g被應用於虛擬機,所以系統資源顯得彌足珍貴,百度了一下就有答案。 用dba身份進入Oracle,筆者在plsql中對數據

windows由於上次沒有正常關機導致錯誤解決

ati 百度 ets failure 時間 cmd win get 關機 像往常一樣,打開電腦準備新一天的碼農生活,在持續了近兩分鐘的開機時間後自啟動的AnyConnect首先報錯:AnyConnect not available,以為是電腦管家禁止了其自啟 並且發現桌面

串口通信參數錯誤導致接收字節並不是想要的結果

導致 發送 ram top pac 存在 測試 ets 串口 在編寫串口通信時設置一下參數,導致接收的字節與單片機發送的字節對不上, serialPort.setSerialPortParams(115200, SerialPort.DATABITS_8,SerialPor

Linux 系統 fstab錯誤導致系統無法啟動的修復

啟動 src default 密碼 .com sda img 技術 -o fstab錯誤的修復 vim /etc/fstab/dev/sda6 /mnt xfs defaults 0 0重啟後系統無法啟動,等待一段時間後輸入root的密碼可進入單用戶

jdk 版本不一致導致錯誤

sdn res myeclipse pan 問題 get target 搜索 文件導入 平時做項目時難免會從git,svn下載代碼或者把別人的項目文件導入到自己的MyEclipse中進行操作,因此會遇到很多問題,常見的有一種是使用的jdk版本不一致造成的報錯, 錯誤案例:

ORA-04031錯誤導致shared_pool問題

解決 pro line unknown 軟解析 incr ash art tail 環境描述: 數據庫版本:Oracle 11.2.0.1 操作系統:AIX 7.1 物理內存:64G 雙節點 RAC 發生故障現象:客戶端無法連接數據庫,數據庫無響應 檢查報警日誌為如

解決虛擬內存設置錯誤導致的系統藍屏無法啟動問題

it一次偶然設置虛擬內存由於設置過大導致系統重啟後藍屏,進入無限系統修復界面,但怎麽修復都無法正常進入系統,修復過程如下: 首先得有個Ghost 系統U盤,制作方法百度。然後開機進入U盤引導,進入Ghost系統① 桌面→更多工具→設置虛擬內存→初始大小500最大值設置成和物理內存一致即可② 桌面→修復系統

子網掩碼錯誤導致通訊異常問題

子網掩碼 昨天遇到個小問題,雖然簡單但是覺得很容易被忽視,然後就會導致奇怪的現象。 兩臺終端PC,網關都在核心上,PC3為192.168.8.190/24,網關為192.168.8.1,PC4是192.168.13.224/24,網關為192.168.13.1。問題現場,PC3可以

PHP代碼錯誤導致PHP返回頁面空白

問題處理解析過程:Nginx通過FastCGI接口將PHP頁面文件傳遞給PHP-FPM管理器處理PHP-FPM調用PHP環境解析後返回響應數據給Nginx用戶呈現頁面 問題現象:PHP測試頁測試沒問題,說明PHP和Nginx配置沒問題。當解析開發使用的PHP頁面時,返回空白頁面,這個時候說明是開發的PHP代碼

Sass 中文註釋導致編譯錯誤

3.5 default efault find info gpo OS utf inf 文件管理器中 Ruby 安裝目錄下找到文件類型為 Ruby File 的文件 engine sass 版本為當前使用的版本(使用 sass -v 在命令行工具中查看) Ruby25-x6