【发布时间】:2013-12-05 18:54:00
【问题描述】:
我有一个项目,其中混合了 c 文件和 cpp 文件。链接器向我抛出错误:
undefined reference to <all my functions in the c files>
在我将所有 *.c 文件重命名为 *.cpp 后,错误消失了。所以我不能混合这些文件还是这是一些编译器/链接器选项问题?
我的选择:
GCC C++ 编译器:
-I/usr/include/glib-2.0 -I/usr/include/gtk-2.0 -I"/myPath" -O0 -g3 \
-Wall -c -fmessage-length=0 `pkg-config --cflags glib-2.0 gtk+-2.0
GCC C 编译器:
-I/usr/include/glib-2.0 -I/usr/include/gtk-2.0 -I"/myPath" -O0 -g3 \
-Wall -c -fmessage-length=0 -std=c99 `pkg-config --cflags glib-2.0 gtk+-2.0`
GCC C++ 链接器:
-L/usr/include/glib-2.0/glib `pkg-config --libs gtk+-2.0`
既然说的是 C++ Linker,那是否意味着来自 c 文件的目标文件不能链接到项目中(默认情况下)?
【问题讨论】: