Линкер не создает пользовательские типы

У меня есть долгосрочный проект на ходу, который включает в себя создание экспертной системы, которая может генерировать новые музыкальные гармонии. Я начал в VB.net взяться за проект до сих пор, но хотел использовать независимый от платформы язык, поэтому я обратился к c ++ для облегчения будущей миграции. По существу, тоны — это атомы, которые при группировке в виде векторов образуют часть последовательностей аккордов, которые при группировке в виде векторов образуют часть блоков и т. Д. Таким образом, вся структура имеет рекурсивный характер. Хотя следующий код будет компилироваться и связываться в Netbeans 7.2, у меня были ужасные проблемы с памятью, которые было трудно решить, поэтому я сейчас нахожусь с Eclipse. В то время как динамические библиотеки будут компилироваться в Eclipse, похоже, существуют проблемы общего характера, так что объекты не создаются. Я провел буквально дни, пробуя всевозможные лекарства. Я включил здесь основной код верхнего уровня и часть списка сообщений об ошибках, которые я получаю. Любые указатели относительно того, что может происходить, будут оценены. Спасибо в ожидании ..

/*
* File:   main.cpp
* Author: Creative
*
* Created on August 6, 2012, 10:49 AM
*/

#include "../tonestatdynlib/name_pitchstructure.h"#include "../sequencerdynlib/chord.h"#include "../sequencerdynlib/Move.h"#include "../sequencerdynlib/block.h"#include "../sequencerdynlib/prog.h"#include "../legalitydynlib/testLegal.h"#include "../dataWriterdynlib/dWriter.h"#include <iostream>
#include <sqlite3.h>//database facility

int main(int argc, char** argv) {

int make;
char start;

cout << "Do you want to start a new movement? Y/N" << endl;

cin >> start;

if (start == 'Y') {
bool end = false;
Move theMove;
block theBlock;
prog theProg;
int i = 1, mv = 1, bk = 1, pr = 1;

theMove.items.push_back(theBlock);
theBlock.items.push_back(theProg);

do {
chord nextChord(i);
nextChord.getPitches();
theProg.items.push_back(nextChord);
dWriter dW(nextChord, pr, bk, mv, "SONO");
cout << "Chord Number " << i << " is completed. Do you want to:" << endl;
cout << "Enter another chord?:  1" << endl;
cout << "Start a new progression?: 2" << endl;
cout << "Start a new block?: 3" << endl;
cout << "Start a new movement?: 4" << endl;
cout << "Exit SONO: 5" << endl;
cin >> make;
switch (make) {
case 5: end = true;
break;
case 1: i++;
break;
case 2: i = 1;
pr++;
break;
case 3: i = 1;
pr = 1;
bk++;
break;
case 4: i = 1;
pr = 1;
bk = 1;
mv++;
break;
}
} while (end == false);
}
return 0;
}

Сообщения об ошибках:

g++ -L"/Users/Creative/Documents/workspace/tonestatdynlib/Debug" -L"/Users/Creative/Documents/workspace/chordOpsdynlib/Debug" -L"/Users/Creative/Documents/workspace/dataWriterdynlib/Debug" -L"/Users/Creative/Documents/workspace/legalitydynlib/Debug" -L"/Users/Creative/Documents/workspace/sequencerdynlib/Debug" -L"/Users/Creative/Documents/workspace/tonestatdynlib" -L"/Users/Creative/Documents/workspace/sequencerdynlib" -L"/Users/Creative/Documents/workspace/legalitydynlib" -L"/Users/Creative/Documents/workspace/dataWriterdynlib" -L"/Users/Creative/Documents/workspace/chordOpsdynlib" -o "SONO"  ./main.oUndefined symbols for architecture x86_64:
"block::block(block const&)", referenced from:
__gnu_cxx::new_allocator<block>::construct(block*, block const&)in main.o
void std::_Construct<block, block>(block*, block const&)in main.o
std::vector<block, std::allocator<block> >::_M_insert_aux(__gnu_cxx::__normal_iterator<block*, std::vector<block, std::allocator<block> > >, block const&)in main.o
"prog::prog(prog const&)", referenced from:
void std::_Construct<prog, prog>(prog*, prog const&)in main.o
__gnu_cxx::new_allocator<prog>::construct(prog*, prog const&)in main.o
std::vector<prog, std::allocator<prog> >::_M_insert_aux(__gnu_cxx::__normal_iterator<prog*, std::vector<prog, std::allocator<prog> > >, prog const&)in main.o
"chord::chord(chord const&)", referenced from:
void std::_Construct<chord, chord>(chord*, chord const&)in main.o
__gnu_cxx::new_allocator<chord>::construct(chord*, chord const&)in main.o
std::vector<chord, std::allocator<chord> >::_M_insert_aux(__gnu_cxx::__normal_iterator<chord*, std::vector<chord, std::allocator<chord> > >, chord const&)in main.o
"pitchStats::pitchStats(pitchStats const&)", referenced from:
void std::_Construct<pitchStats, pitchStats>(pitchStats*, pitchStats const&)in main.o
"block::~block()", referenced from:
_main in main.o
std::vector<block, std::allocator<block> >::_M_insert_aux(__gnu_cxx::__normal_iterator<block*, std::vector<block, std::allocator<block> > >, block const&)in main.o
"prog::~prog()", referenced from:
_main in main.o
std::vector<prog, std::allocator<prog> >::_M_insert_aux(__gnu_cxx::__normal_iterator<prog*, std::vector<prog, std::allocator<prog> > >, prog const&)in main.o
"chord::~chord()", referenced from:
_main in main.o
std::vector<chord, std::allocator<chord> >::_M_insert_aux(__gnu_cxx::__normal_iterator<chord*, std::vector<chord, std::allocator<chord> > >, chord const&)in main.o
"Move::Move()", referenced from:
_main in main.o
"block::block()", referenced from:
_main in main.o
"prog::prog()", referenced from:
_main in main.o
"chord::chord(int)", referenced from:
_main in main.o
"chord::getPitches()", referenced from:
_main in main.o
"dWriter::dWriter(chord const&, int, int, int, char const*)", referenced from:
_main in main.o
"dWriter::~dWriter()", referenced from:
_main in main.o
"Move::~Move()", referenced from:
_main in main.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
make: *** [SONO] Error 1

0

Решение

Вы предоставляете только пути, по которым нужно искать библиотеки для ссылок. Вам также необходимо предоставить библиотеки, используя -l, Например, для libFoo.so использование -lFoo,

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]