1. 程式人生 > >Makefile編寫執行問題,報錯undefined reference to `main'

Makefile編寫執行問題,報錯undefined reference to `main'

Makefile檔案

CC=cc
CFLAGS=-g -c
OBJDIR=obj
OBJS=func.o main_test.o

go:$(OBJS:%=$(OBJDIR)/%)
    ${CC} $^ -o [email protected]

$(OBJDIR)/%.o:%.c
    ${CC} ${CFLAGS} -I. $< -o [email protected] 
clean:
    rm $(OBJDIR)/*.o go

make執行結果,報錯

cc -g -c -I. func.c -o obj/func.o 
cc -g -c -I. main_test.c -o obj/main_
test.o cc obj/func.o -o go /usr/lib/gcc/i586-suse-linux/4.3/../../../crt1.o: In function `_start': /usr/src/packages/BUILD/glibc-2.11.1/csu/../sysdeps/i386/elf/start.S:115: undefined reference to `main' collect2: ld 返回 1 make: *** [go] 錯誤 1

本例錯誤原因為: 生成可執行檔案時,應將main函式所在目標檔案main_test.o,放在開頭 OBJS=main_test.o func.o
($@目標檔案,$

^所有的依賴檔案,$<第一個依賴檔案”)

相關推薦

Makefile編寫執行問題,undefined reference to `main'

Makefile檔案 CC=cc CFLAGS=-g -c OBJDIR=obj OBJS=func.o main_test.o go:$(OBJS:%=$(OBJDIR)/%) ${C

minigui:解決gvfb編譯undefined reference to symbol 'XkbGetIndicatorState'

minigui在linux PC平臺建立開發環境時,需要Virtual Frame Buffer 支援(gvfb,qvfb),minigui官網提供了這兩個程式的原始碼,需要自己下載編譯並安裝到自己的PC上。 我用的是gvfb,minigui下載地址:http://www.minig

Clion lua 編譯: undefined reference to `lual_newstate' 在win10上面編譯lua5.3.5以及解決方法

在CmakeLists.txt裡面新增:  ``` include_directories("D:\\lua\\lua-5.3.5\\lua-5.3.5\\dist\\include") link_directories("D:\\lua\\lua-5.3.5\\lua-5.3.5

Linux編譯程式 undefined reference to error 的解決方法

對於我這個剛入IT行業不就得新手來說,在linux下連結庫的時候總是會遇到各種各樣奇葩的問題,最多的就是“undefined reference to”和“cannot find”這兩類,層出不窮,總是在我即將完成工作的時候給我當頭一棒,讓我欲罷不能。這不,這幾天編譯linux下一個專案時又遇到難題

c++ template 多層繼承下找不到純虛擬函式實現 :undefined reference to "xxx"

如下程式碼中,定義了3個類,ClassA,ClassB,ClassC,依次為被繼承關係,ClassA,ClassB是模板類, 在ClassA中定義了一個純虛擬函式getKeyFromObject,實現將從V中獲取K的功能: getKeyFromObject函

Linux 編譯 -- undefined reference to 問題解決方法 (具體'pthread_create'和opencv看文章最後兩條)

最近在Linux下程式設計發現一個詭異的現象,就是在連結一個靜態庫的時候總是報錯,類似下面這樣的錯誤: (.text+0x13): undefined reference to `func'     關於undefined reference這樣的問題,大家其實經常會遇到

Linux 編譯 undefined reference to `pthread_create'

在編譯Linux下多執行緒程式的時候出現錯誤資訊, 寫好程式碼,進行編譯時,出現如下錯誤提示資訊:  thread.c:(.text+0xae): undefined reference to `pthread_create' thread.c:(.

boost log undefined reference to boost::log::v2_mt_posix::basic_formatter

在編譯boost log檔案時報錯提示: undefined reference to `boost::log::v2_mt_posix::basic_formatter<char> boost::log::v2_mt_posix::parse_formatt

Linux 編譯 -- undefined reference to 問題解決方法 (具體'pthread_create'和opencv看文章最後兩條)

最近在Linux下程式設計發現一個詭異的現象,就是在連結一個靜態庫的時候總是報錯,類似下面這樣的錯誤: (.text+0x13): undefined reference to `func'     關於undefined reference這樣的問題,大家其實經常會遇

小程式執行:“Failed to load local image resource xxx.png the server responded with?

錯誤原因: 由於這是因為初始化的時候,變數還沒渲染進去導致的。 解決方法: 在src前面加個: wx:if<image wx:if='{{customerLevel.value}}' class

g++編譯連結c語言檔案undefined reference ” 的處理

用QT寫一介面程式,其中用到另一同事寫的一個小功能,他是用c語言寫的,於是把他的程式碼標頭檔案和原始檔都copy過來了,加入工程中,結果連結的時候就總報錯 undefined reference 某個函式。再三確認了makefile檔案和原始碼,表示沒問題,後來想到或許是g+

一個環境變數導致執行Exception in thread "main" java.lang.NoClassDefFoundError:

昨天下午編譯通過就一直報錯Exception in thread "main" java.lang.NoClassDefFoundError: 早上終於調通了,加油 1 安裝與配置 (1)在我的電腦C盤裡安裝了SDK ,路徑是這樣的:C:\Program Files

Makefile中要編譯多執行緒是undefined reference to `pthread_create'類似錯誤

Makefile中要編譯包含執行緒庫的檔案時,把-lpthread放在哪裡呢? 答:把-lpthread放在連結那句編譯命令的最後即可啦。如:  $(CC) -o test_threadpool main.o threadpool.o  -lpthread 編譯階段是不用

undefined reference to `vtable for YAML::BadConversion' 的解決方法

 Bug   在編譯用到yaml程式的時候,遇到如下報錯: /home/liuhang/Documents/Momenta/catkin_ws/devel/lib/libloam.so: undefined reference to `vtable for Y

使用CI遇到的問題:Call to undefined function base_url()

png onf undefine efi 分享圖片 fig size url bsp 問題來源:在HTML文件中使用base_url()函數引入CSS文件時,發現報錯:Call to undefined function base_url() 研究了一下才知道是因為沒有加載

解決 Maven工程執行Failed to clean project: Failed to delete

  在執行maven工程總是報“Failed to clean project: Failed to delete”錯誤,原因是因為之前編譯的工程還在執行,無法clean,導致maven生命週期無法繼續進行。   看到網上很多誤人子弟的方法,什麼關閉java程序,還有說等待一段時間讓他自動好的。這個問題的解

生效admin環境變數後執行cinder service-listERROR: Unable to establish connection to http://controller:35357/

ERROR: Unable to establish connection to http://controller:35357/ 一、報錯資訊 二、解決方法 一、報錯資訊 [[email protected]

thinkphp :Call to undefined function think\captcha\imagettftext()

今天將公司官網弄到本地測試到時候,發現驗證碼無法顯示,公司的官網以前是用dede做的,找到dede中的include/vdimgck.php,單獨執行,沒有報錯,也不顯示 順著檔案一步步查詢 發現以下程式碼 //輸出文字     $lastc = '';     for(

Intervention\Image Laravel php等比例壓縮圖片 :Call to undefined method Intervention\Image\Image::make()

安裝 composer require intervention/image 開啟config/app.php,註冊如下服務提供者到$providers陣列: Intervention\Image\ImageServiceProvider::class 然

關於移植jSON編譯時報sbrkr.c:(.text+0xc): undefined reference to `_sbrk'處理

最近有個專案需要用到jSON函式,在移植了jSON後編譯報錯如下:sbrkr.c:(.text+0xc): undefined reference to `_sbrk'。 通過百度查詢知道原來是GCC編譯器不支援malloc、free、memcpy、strlen等函式導致的,正常在嵌入式系統