Ich habe es mit cgo versucht

About Wenn ich C / C ++ mache, wünschte ich mir oft, ich könnte es in Golang schreiben. Ich schrieb "Hello ()" in C / C ++ von Golang nach cgo. Nennen wir es mit cgo /).

Umwelt habe ich versucht

version
Ubuntu 17.10
gcc 7.2.0
golang 1.8.3

Hallo Welt in C-Sprache

c_hello.h


#ifndef C_HELLO_H_
#define C_HELLO_H_

void Hello(const char*);

#endif

c_hello.c


#include <stdio.h>
#include "c_hello.h"

void Hello(const char* name) {
  printf("hello %s\n", name);
};

c_hello.go


package main

/*
#cgo LDFLAGS: ./chello.o
#include "chello.h"
*/
import "C"

func main() {
	C.Hello(C.CString("Qiita"))
}

Kompilieren und ausführen

% gcc c_hello.c -c
% go run c_hello.go
% hello Qiita

Hallo Welt in C ++

hello.hpp


#ifndef HELLO_H_
#define HELLO_H_

#ifdef __cplusplus
extern "C" {
#endif

void Hello(const char*);

#ifdef __cplusplus
}
#endif

#endif

hello.cpp


#include <cstdio>
#include "hello.hpp"

void Hello(const char* name) {
  std::printf("hello %s\n", name);
};

hello.go


package main

/*
#cgo LDFLAGS: ./hello.o
#include "hello.hpp"
*/
import "C"

func main() {
	C.Hello(C.CString("Qiita"))
}

Kompilieren und ausführen

% gcc -lstdc++ hello.cpp -c
% go run hello.go
% hello Qiita

Impressionen

Recommended Posts

Ich habe es mit cgo versucht
Ich habe versucht zu kratzen
Ich habe PyQ ausprobiert
Ich habe es mit Papiermühle versucht
Ich habe es mit Django versucht
Ich habe es mit Spleeter versucht
Ich habe versucht, parametrisiert zu verwenden
Ich habe versucht, Argparse zu verwenden
Ich habe versucht, Mimesis zu verwenden
Ich habe versucht, anytree zu verwenden
Ich habe versucht, Pymc auszuführen
Ich habe ARP-Spoofing ausprobiert
Ich habe versucht, Summpy zu verwenden
Ich habe Python> autopep8 ausprobiert
Ich habe versucht, Coturn zu verwenden
Ich habe versucht, Pipenv zu verwenden
Ich habe versucht, Matplotlib zu verwenden
Ich habe versucht, "Anvil" zu verwenden.
Ich habe versucht, Hubot zu verwenden
Ich habe versucht, ESPCN zu verwenden
Ich habe versucht, openpyxl zu verwenden
Ich habe versucht, tief zu lernen
Ich habe AWS CDK ausprobiert!
Ich habe versucht, Ipython zu verwenden
Ich habe versucht zu debuggen.
Ich habe versucht, PyCaret zu verwenden
Ich habe versucht, Cron zu verwenden
Ich habe versucht, ngrok zu verwenden
Ich habe versucht, face_recognition zu verwenden
Ich habe versucht, Jupyter zu verwenden
Ich habe versucht, EfficientDet zu verschieben
Ich habe Python> Decorator ausprobiert
Ich habe Auto Gluon ausprobiert
Ich habe versucht, Folium zu verwenden
Ich habe versucht, jinja2 zu verwenden
Ich habe AWS Iot ausprobiert
Ich habe die Bayes'sche Optimierung ausprobiert!
Ich habe versucht, Folium zu verwenden
Ich habe versucht, das Zeitfenster zu verwenden
Ich habe Value Iteration Networks ausprobiert
Ich habe versucht, mit Python zu kratzen
Ich habe die Bildklassifizierung von AutoGluon ausprobiert
Ich habe versucht, PredNet zu lernen
[Ich habe versucht, Pythonista 3 zu verwenden] Einführung
Ich habe versucht, easydict (Memo) zu verwenden.
Ich habe versucht, das Gesicht mit Face ++ zu erkennen
Ich habe versucht, RandomForest zu verwenden
Ich habe versucht, mit PyCaret zu clustern
Ich habe versucht, BigQuery ML zu verwenden
Ich habe "K-Fold Target Encoding" ausprobiert.
Ich habe versucht, PCANet zu implementieren
[Ich habe es versucht] Nand2 Tetris Kapitel 6
Ich habe die Changefinder-Bibliothek ausprobiert!
Ich habe die C-Erweiterung von Python ausprobiert
Ich habe versucht, Pylint vorzustellen
Ich habe Pandas 'Sql Upsert ausprobiert