【发布时间】:2010-09-26 12:58:06
【问题描述】:
所以,我一直致力于连接散列一个简单的应用程序,包括 C++ 和 Objective-C,以证明一些概念并尝试学习一些东西。
这是我现在的位置,我的命令(正在运行,并在更改时重新运行)是
$ autoreconf -vis && make clean && ./configure && make && ./src/greetings
请注意,我希望它会在我完成后运行,这是一个简短的文件列表:
$查找。 | ack '\.(?:cpp|mm|h)$' ./src/darwin/greet.cpp ./src/darwin/greeting.h ./src/darwin/greeting.mm ./src/greet.h ./src/main.cpp ./src/mingw32/greet.cpp ./src/mingw32/greet.h完整的文件,都可以在这个Gist at Github找到。
而不是专门混合语言的问题(我什至没有做到那么远)-我似乎在编译器上绊倒了,没有意识到这是Objective-C(或ObjecC++)-出于这个原因,我的自动配置文件在this gist。
带有完整的错误输出here, also in a Gist。
这是一个示例:
在 /usr/include/c++/4.2.1/iosfwd:48 包含的文件中, 来自/usr/include/c++/4.2.1/ios:43, 来自 /usr/include/c++/4.2.1/ostream:45, 来自/usr/include/c++/4.2.1/iostream:45, 来自达尔文/greet.cpp:10: /usr/include/c++/4.2.1/bits/stringfwd.h:48:错误:带有 C 链接的模板 /usr/include/c++/4.2.1/bits/stringfwd.h:51:错误:带有 C 链接的模板 /usr/include/c++/4.2.1/bits/stringfwd.h:54:错误:带有 C 链接的模板 /usr/include/c++/4.2.1/bits/stringfwd.h:58:错误:带有 C 链接的模板特化 /usr/include/c++/4.2.1/bits/stringfwd.h:63:错误:带有 C 链接的模板特化 在 /usr/include/c++/4.2.1/iosfwd:49 包含的文件中, 来自/usr/include/c++/4.2.1/ios:43, 来自 /usr/include/c++/4.2.1/ostream:45, 来自/usr/include/c++/4.2.1/iostream:45, 来自达尔文/greet.cpp:10:【问题讨论】:
-
您是否尝试过使用
.mm扩展名重命名.cpp文件? -
是的,如果我这样做了,那么 automake 找不到输入文件,但是当我在
./src/Makefile.am中注释掉greetings_CFLAGS = -framework -Xlinker Foundation行时,错误都会变成/usr/include/c++/4.2.1/bits/istream.tcc:406: error: template with C linkage之类的东西 -
你能把
Makefile或Makefile.in添加到你的 gist 中吗?我想知道是否可能缺少.mm -> $(OBJEXT)的后缀规则,这就是没有输入文件内容的原因。 -
你能上传一个
make dist让我修改吗?
标签: c++ objective-c gcc automake