2

我想在我的教堂库中包含一些 C++ 代码,第一步是让教堂编译器根据这个页面编译 cpp 。但是,我遇到了一个奇怪的错误。我.cpp的是

/* Hello World program
 * `/Users/buddha/github/chapel/util/config/compileline --compile` hello.cpp
 * */

//#include<stdio.h>   // just fine
#include<iostream>  // gastro-intestinal distress...

int main()
{
    printf("Hello World\n");
}

但是当我运行时compileline出现错误

 `/Users/buddha/github/chapel/util/config/compileline --compile` hello.cpp 
In file included from hello.cpp:6:
In file included from /Library/Developer/CommandLineTools/usr/include/c++/v1/iostream:38:
In file included from /Library/Developer/CommandLineTools/usr/include/c++/v1/ios:216:
In file included from /Library/Developer/CommandLineTools/usr/include/c++/v1/__locale:18:
In file included from /Library/Developer/CommandLineTools/usr/include/c++/v1/mutex:189:
In file included from /Library/Developer/CommandLineTools/usr/include/c++/v1/__mutex_base:17:
/Library/Developer/CommandLineTools/usr/include/c++/v1/__threading_support:156:1: error: unknown type name 'mach_port_t'
mach_port_t __libcpp_thread_get_port();
^
/Library/Developer/CommandLineTools/usr/include/c++/v1/__threading_support:300:1: error: unknown type name 'mach_port_t'
mach_port_t __libcpp_thread_get_port() {
^
/Library/Developer/CommandLineTools/usr/include/c++/v1/__threading_support:301:12: error: use of undeclared identifier 'pthread_mach_thread_np'
    return pthread_mach_thread_np(pthread_self());
           ^
3 errors generated.

我觉得我正在关注文档,但我看不到我缺少什么。

4

2 回答 2

2

Chapel 1.17(尚未发布,但您可以尝试预发布的 master 分支)添加了util/config/compileline --compile-c++类似的工作方式,但需要 C++ 编译器而不是 C 编译器。

于 2017-11-30T17:31:37.740 回答
1

您正在包括<iostream>forstd::cout但您正在使用printffrom <cstdio>

基本上,您不仅要混合 C++ 和 chapel,还要混合 C++ 和 C。

于 2017-11-29T20:08:20.003 回答