我在网上看到我应该拿我现有的项目,它处于开发阶段,用它构建一个共享库,并使用这个库进行测试。我打算做的是将我当前的所有工作转移到一个新的共享库 eclipse 项目中,将其用于在旅途中进行测试,并继续在这个新的共享库项目中进行开发,我将用于测试和开发。但是,当我为共享库项目点击构建时,以便查看我在那里所做的更改是否完全编译,我得到了
调用:Cross G++ Linker 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 上的锤子图标来构建。