這是我一直在收到的錯誤。C++中的未定義引用
-bash-4.1$ g++ strl.cpp -o -lc-
/tmp/ccRpiglh.o: In function `main':
strl.cpp:(.text+0xf): undefined reference to `plusplus'
collect2: ld returned 1 exit status
聽說是strl.cpp的源代碼。這是一個重複我的問題的簡單例子。
strl.cpp
#include <iostream>
#include <stdlib.h>
#include "libc-.h"
using namespace std;
int main()
{
cout<<plusplus(5,2)<<'\n';
}
這裏是源libc.cpp
libc.cpp
#include <iostream>
using namespace std;
int plusplus(int a, int b)
{
return a + b;
}
來源爲的libc-.H
libc-.h
#ifndef _SCANTYPE_H_
#define _SCANTYPE_H_
#include <iostream>
#include <stdlib.h>
#ifdef __cplusplus
extern "C"
{
#endif
using namespace std;
int plusplus(int a, int b);
#ifdef __cplusplus
}
#endif
#endif
我與編譯如下:
g++ -Wall -shared -fPIC -o libc-.so libc-.cpp
g++ strl.cpp -o -lc-
g++ -Wall -shared -fPIC -o libc-.so libc-.cpp
編譯沒有錯誤。
爲什麼函數plusplus
是未定義的引用?
感謝您對我做錯什麼的看法。
可能重複[什麼是未定義的引用/未解析的外部符號錯誤,以及如何解決它?](http://stackoverflow.com/questions/12573816/what-is-an-undefined-reference-unresolved-外部符號錯誤和如何-DO-修復) – Niall