什么g ++链接选项来修复找不到的错误函数

时间:2015-10-02 20:32:39

标签: c++

我的项目使用g ++编译器编译分布在多个目录中的源代码,最后构建了一个可执行文件。但是在构建最终的可执行文件时,我得到了未定义的链接错误函数。

我做了以下代码,这是我的项目的缩小版,并暴露了相同的错误,希望你能帮助我。

所以这是目录树和源文件:

./

./11/
c1.cpp  c1.h

./12/
c2.cpp

以下是文件:

./11/c1.h:
int f();

./11/c1.cpp:
#include "c1.h"

int f()
{
    return 0;
}

./12/c2.cpp:
#include "c1.h"

int main()
{
    f();

    return 0;
}

以下是我构建文件的步骤:

cd 11
g++ -c -o ../c1.o c1.cpp
cp c1.h ..
cd ..
ar cr libc1.a c1.o
cd 12
g++  -I../ -L../ -lc1 c2.cpp

是的,我需要将c1编译为对象并将其归档,即使它很小,但这就是我的项目正在做的事情。

以下是错误消息:

/tmp/cctFdZLe.o: In function `main':
c2.cpp:(.text+0x5): undefined reference to `f()'
collect2: ld returned 1 exit status

谢谢!

0 个答案:

没有答案