【发布时间】:2013-10-28 16:40:28
【问题描述】:
我在网上看到我应该把我现有的项目,它处于开发阶段,建立一个共享库,并使用这个库进行测试。我打算做的是将我当前的所有工作转移到一个新的共享库 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 上的锤子图标来构建的。
【问题讨论】:
标签: c++ eclipse unit-testing