файлы проекта заключается в следующем:Неопределенная ссылка на (г ++ компиляции со статической библиотекой)
source
parser
parser.cpp
parser.hpp
brain
brain.cpp
brain.hpp
Я первый побежал эти две команды (PWD source/brain/
):
g++ -c brain.cpp -o brain.o
ar rvs brain.a brain.o
Я скопировал как brain.a
и brain.hpp
- source/parser/
. Тогда я запустил эту команду (PWD source/parser
):
g++ parser.cpp brain.a -o parser
И я получил эту ошибку:
/tmp/cceGRLZn.o: In function `main':
parser.cpp:(.text+0x1cc): undefined reference to `std::brain<long long>::brain()'
parser.cpp:(.text+0x205): undefined reference to `std::brain<long long>::init(int)'
parser.cpp:(.text+0x26b): undefined reference to `std::brain<long long>::work()'
parser.cpp:(.text+0x2a4): undefined reference to `std::brain<long long>::clear()'
parser.cpp:(.text+0x2ec): undefined reference to `std::brain<long long>::~brain()'
parser.cpp:(.text+0x322): undefined reference to `std::brain<long long>::~brain()'
/tmp/cceGRLZn.o: In function `int parser_extract_args<long long>(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, int, short&, std::brain<long long>&)':
parser.cpp:(.text._Z19parser_extract_argsIxEiRSsiRsRSt5brainIT_E[int parser_extract_args<long long>(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, int, short&, std::brain<long long>&)]+0x17b): undefined reference to `std::brain<long long>::push_back(long long)'
parser.cpp:(.text._Z19parser_extract_argsIxEiRSsiRsRSt5brainIT_E[int parser_extract_args<long long>(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, int, short&, std::brain<long long>&)]+0x37a): undefined reference to `std::brain<long long>::push_back(long long)'
collect2: ld returned 1 exit status
Исходные файлы:
brain.cpp [http://ideone.com/GNUxmH][1]
brain.hpp [http://ideone.com/M2IFAI][2]
parser.cpp [http://ideone.com/fJRzhD][3]
parser.hpp [http://ideone.com/mj6dST][4]
Что я должен делать?
Кажется, вы используете шаблоны через заголовок и источник, вам нужно определить эти шаблоны в заголовке и включить их. –
Можете ли вы, пожалуйста, показать мне, как это первый раз, когда я использую шаблоны или, по крайней мере, обращаюсь к учебнику. –