我遇到了我的Makefile问题。在crt1.o函数中未定义对“main”错误的引用_start
我试图从2个文件中创建一个程序 - main.cpp包含main函数,modules.c包含main()中调用的函数的定义。 modules.c只包含函数定义,不包含主函数。
我的Makefile文件如下:
CC := gcc
CXX := g++
LINK := g++ -Wall
CFLAGS := -g
CXXFLAGS := -g
TARGET = program
$(TARGET): modules.o main.o
$(LINK) -o [email protected] $< -lpcap
clean:
rm *.o $(TARGET)
modules.o:
$(CC) $(CFLAGS) -c modules.c -o [email protected] $<
main.o:
$(CXX) $(CXXFLAGS) -c main.cpp -o [email protected] $<
我已经包含了 “modules.h”,它包含了所有的函数声明,在我的main.cpp。 CFLAGS和CXXFLAGS变量指向包含
正确的路径当我尝试使用这个Makefile做,我得到的错误
/usr/lib/gcc/x86_64-redhat-linux/4.4.4 /../../../../lib64/crt1.o:在函数 '_start':
(的.text + 0×20):未定义参照 '主'
如果我切换我的$(TARGET)行中的modules.o和main.o的顺序,然后我得到错误,说“未定义的引用”,我已经在main.cpp modules.c中定义的函数。
我不知道什么是错的。
谢谢。
问候, 雷恩
发表代码... – Nawaz 2011-04-13 08:36:19
我有一个类似的问题,当我拼写'gcc -pipe'为'gcc -pie' ... – gregn3 2015-02-13 12:25:44