開発段階にある既存のプロジェクトを利用して、そこから共有ライブラリを構築し、このライブラリをテストに使用する必要があることをオンラインで読みました。私が計画しているのは、現在のすべての作業を新しい共有ライブラリ eclipse プロジェクトに移動し、これを外出先でのテストに使用し、この新しい共有ライブラリ プロジェクトで開発を続け、テストと開発の両方に使用することです。ただし、共有ライブラリ プロジェクトのビルドをヒットすると、そこに行った変更がコンパイルされるかどうかを確認するために、
呼び出し: クロス G++ リンカ g++ -shared -o "libMatchingEngineLibrary.so" ./src/Fill.o ./src/GlobalMatchingEngine.o ./src/Main.o ./src/Order.o ./src/OrderBook.o ./src/SingleFifoMatchingEngine.o ./src/SingleMatchingEngine.o
/usr/bin/ld: ./src/Fill.o: 再配置 R_X86_64_32S は、共有オブジェクトを作成するときに、'vtable for Fill' に対して使用できません。-fPIC で再コンパイルします。/src/Fill.o: シンボルを読み取れませんでした: 不正な値 collect2: ld が 1 の終了ステータスを返しました make: * [libMatchingEngineLibrary.so] エラー 1
この共有ライブラリ プロジェクトをビルドすることさえできないのはなぜですか。ましてや、テストを開始することはできません。私は何を間違っていますか?私はそれを構築することができるはずですか?この種の共有ライブラリ プロジェクトで開発を行っても問題ありませんか (これは、テストと開発を並行して行うための便宜のためだけに行いたいことです)。
編集:エラーに記載されている Fill クラスは、アルファベット順でプロジェクトの最初のクラスです。eclipseでハンマーアイコンを叩いてビルドしています。