0

私は、斬新な音楽のハーモニーを生み出すことができるエキスパートシステムを構築することを含む、外出先での長期的なプロジェクトを持っています。私はVB.netでプロジェクトを開始しましたが、プラットフォームに依存しない言語を使用したかったので、将来の移行を容易にするためにc++を使用しました。本質的にトーンは、ベクトルとしてグループ化されたときにコード進行の一部を形成し、ベクトルとしてグループ化されたときにブロックなどの一部を形成するアトムです。したがって、構造全体が再帰的な感覚を持ちます。次のコードはNetbeans7.2でコンパイルとリンクの両方を行いますが、メモリの問題がひどく、解決が難しいため、現在Eclipseを使用しています。ダイナミックライブラリはEclipseでコンパイルされますが、オブジェクトが作成されないなど、全体的なレベルでリンクの問題があるようです。私は文字通り何日もあらゆる種類の治療法を試してきました。ここに、トップレベルのメインコードと、表示されるエラーメッセージのパーツリストを含めます。何が起こっているのかについてのポインタをいただければ幸いです。期待してThx..

/* 
 * 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.o  



Undefined 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
4

1 に答える 1

2

リンクするライブラリを検索するパスのみを提供しています。を使用してライブラリを提供する必要もあります-l。たとえば、libFoo.so使用します-lFoo

于 2012-09-08T09:20:15.333 に答える