我正在尝试使用Linux上的Eclipse IDE在C ++中创建一个共享库。但是我收到此错误,但找不到问题:
tsconfig.json
该库需要预处理器GE_PLATFORM_LINUX。
答案 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