【发布时间】:2011-01-01 00:28:12
【问题描述】:
我试图弄清楚为什么当我将 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: 对 `NSApplicationMain(int, char const**)' 的未定义引用
有人可以找出我做错了什么吗?我不明白为什么它现在无法链接。
我正在尝试将一些 C++ 类添加到目标 c 程序中,这使我无法继续。
感谢您提供的任何帮助。
【问题讨论】:
标签: c++ objective-c linker gnustep