мой main.cpp
:г ++ связываннии статической библиотеки
#include <iostream>
int foo(int arg);
using namespace std;
int main()
{
int x = foo(22);
cout << x;
return 0;
}
командной строки компиляции (Ubuntu 13.10):
g++-4.8 -L. -lfoo main.cpp -o main_app
libfoo.a
содержит int foo(int)
, но я всегда получаю ту же ошибку компилятора:
/tmp/cciAyTSP.o: In function `main':
main.cpp:(.text+0x19): undefined reference to `foo(int)'
collect2: error: ld returned 1 exit status
'foo' не ** определяется ** внутри вашего кода, или, в лучшем случае, он не определен или' extern' внутри вашей единицы перевода. – user2485710
Как вы создаете libfoo.a? Не могли бы вы дать нам [минимальный полный пример] (http://sscce.org)? – Beta
@ user2485710 Функции не нужно объявлять 'extern' –