【问题标题】:Using CUTE for C++ tests in Eclipse在 Eclipse 中使用 CUTE 进行 C++ 测试
【发布时间】: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


    【解决方案1】:

    该错误准确地说明了您所缺少的内容。使用-fPIC 标志重新编译。这将允许“位置无关代码”,在尝试制作共享对象库之前您可能应该了解它。祝你好运!

    【讨论】:

    • 如何在 Eclipse 中执行此操作?我不是从终端编译,只是在 IDE 中构建。
    • 我从未使用过 Eclipse,但我想你会去项目属性之类的地方寻找类似“附加编译器标志”之类的东西
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-05
    • 2017-04-11
    • 2016-11-16
    • 2015-07-08
    • 2011-11-01
    • 2012-08-31
    • 1970-01-01
    相关资源
    最近更新 更多