我试图弄清楚为什么当我将 main.m 文件转换为 main.mm 文件时,它不再正确链接。
我已将问题简化为以下示例代码:
#import <Foundation/Foundation.h>
#import <AppKit/AppKit.h>
int main( int argc, const char ** argv ) {
return NSApplicationMain( argc, argv);
}
我正在使用 gnustep 和 linux。我输入以下命令,一切都按预期工作:
g++ -g -c main.m -I/usr/GNUstep/Local/Library/Headers -I/usr/GNUstep/System/Library/Headers
g++ -g -o test main.o -L/usr/GNUstep/Local/Library/Libraries -L/usr/GNUstep/System/Library/Libraries -lgnustep-base -lgnustep-gui
现在,如果我将 main.m 重命名为 main.mm 并使用这两个命令(相同的 exept main.m 现在 main.mm):
g++ -g -c main.mm -I/usr/GNUstep/Local/Library/Headers -I/usr/GNUstep/System/Library/Headers
g++ -g -o test main.o -L/usr/GNUstep/Local/Library/Libraries -L/usr/GNUstep/System/Library/Libraries -lgnustep-base -lgnustep-gui
我收到以下错误:main.mm:7: undefined reference to `NSApplicationMain(int, char const**)'
有人可以找到我做错了什么吗?我不明白为什么它现在无法链接。
我正在尝试将一些 C++ 类添加到目标 c 程序中,这使我无法继续。
感谢您提供任何帮助。