无法在Eclipse中编译共享库

时间:2019-03-14 20:50:41

标签: c++ eclipse shared-libraries lib

我正在尝试使用Linux上的Eclipse IDE在C ++中创建一个共享库。但是我收到此错误,但找不到问题:

tsconfig.json

这是我的配置: Preprocessor Settings

Dialect

该库需要预处理器GE_PLATFORM_LINUX。

2 个答案:

答案 0 :(得分:0)

您的编译命令都搞砸了。

  

std = c ++ 1y -DGE_PLATFORM_LINUX ...

     

/ bin / sh:1:-DGE_PLATFORM_LINUX:找不到:   [GE / subdir.mk:20:GE / Application.o]错误127(忽略)

这意味着未调用实际的编译器(g ++),而只是调用其后的参数,因此shell将其视为命令,显然不存在。检查您的Make文件,查看其中的内容。

答案 1 :(得分:0)

std=c++1y -DGE_PLATFORM_LINUX -O3 -Wall -c -fmessage-length=0 -MMD -MP -MF"GE/Application.d" -MT"GE/Application.o" -o "GE/Application.o" "../GE/Application.cpp"

在此行中,缺少C ++编译器命令,这导致外壳程序尝试将-DGE_PLATFORM_LINUX解释为要执行的命令。导致错误显示在下一行:

/bin/sh: 1: -DGE_PLATFORM_LINUX: not found

因此未构建目标文件,并且在链接时丢失了目标文件。为什么缺少的命令会被Eclipse接受并忽略该错误,这是不同的问题。

解决方案:确保设置了正确的编译器命令;链接器调用显示了它的外观:

g++ -shared -o "libGE.so"  ./GE/Application.o   

来自https://stackoverflow.com/a/38220551/5794048enter image description here