We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ffi-c++.cppとffi-c++-main.cというファイルを作り、それぞれ.oファイルを作ったのち、リンクするために $ gcc -o ffi-c++-main ffi-c++.o ffi-c++-main.o -lm を実行すると以下のようなエラーがでます。
mech-user@ki00128:~/3A_robotsystem(pass:soft3)/7$ gcc -o ffi-c++-main ffi-c++.o ffi-c++-main.o -lm ffi-c++.o: 関数 hello' 内: ffi-c++.cpp:(.text+0x3c): std::cout' に対する定義されていない参照です ffi-c++.cpp:(.text+0x41): std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)' に対する定義されていない参照です ffi-c++.cpp:(.text+0x53): std::basic_ostream<char, std::char_traits >& std::operator<< <std::char_traits >(std::basic_ostream<char, std::char_traits >&, char const*)' に対する定義されていない参照です ffi-c++.cpp:(.text+0x5d): std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&)' に対する定義されていない参照です ffi-c++.cpp:(.text+0x68): std::ostream::operator<<(std::ostream& (*)(std::ostream&))' に対する定義されていない参照です ffi-c++.o: 関数 __static_initialization_and_destruction_0(int, int)' 内: ffi-c++.cpp:(.text+0x94): std::ios_base::Init::Init()' に対する定義されていない参照です ffi-c++.cpp:(.text+0xa9): `std::ios_base::Init::~Init()' に対する定義されていない参照です collect2: error: ld returned 1 exit status
hello' 内: ffi-c++.cpp:(.text+0x3c):
std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)' に対する定義されていない参照です ffi-c++.cpp:(.text+0x53):
std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&)' に対する定義されていない参照です ffi-c++.cpp:(.text+0x68):
__static_initialization_and_destruction_0(int, int)' 内: ffi-c++.cpp:(.text+0x94):
以下2つのファイルのコードです。 //ffi-c++.cpp #include #include <math.h>
extern "C" { double sinc(double d){ return(sin(d)/d); } void hello(char* str){ std::cout << "hello " << str << std::endl; } }
//ffi-c++-main.c
#include <stdio.h>
double sinc(double x); void hello(char *str);
int main(){ double f = 1.0; hello("world"); fprintf(stderr,"sinc(%f) = %f\n",f,sinc(f)); }
The text was updated successfully, but these errors were encountered:
ごめんなさい 授業中に説明したつもりだったんですが、資料には書いていないんですが gcc -o ffi-c++-main ffi-c++.o ffi-c++-main.o -lm -lstdc++ としてみて下さい
gcc -o ffi-c++-main ffi-c++.o ffi-c++-main.o -lm -lstdc++
Sorry, something went wrong.
ありがとうございます。聴き逃していました。うまく行きました。
No branches or pull requests
ffi-c++.cppとffi-c++-main.cというファイルを作り、それぞれ.oファイルを作ったのち、リンクするために
$ gcc -o ffi-c++-main ffi-c++.o ffi-c++-main.o -lm
を実行すると以下のようなエラーがでます。
mech-user@ki00128:~/3A_robotsystem(pass:soft3)/7$ gcc -o ffi-c++-main ffi-c++.o ffi-c++-main.o -lm
ffi-c++.o: 関数
hello' 内: ffi-c++.cpp:(.text+0x3c):
std::cout' に対する定義されていない参照ですffi-c++.cpp:(.text+0x41):
std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)' に対する定義されていない参照です ffi-c++.cpp:(.text+0x53):
std::basic_ostream<char, std::char_traits >& std::operator<< <std::char_traits >(std::basic_ostream<char, std::char_traits >&, char const*)' に対する定義されていない参照ですffi-c++.cpp:(.text+0x5d):
std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&)' に対する定義されていない参照です ffi-c++.cpp:(.text+0x68):
std::ostream::operator<<(std::ostream& (*)(std::ostream&))' に対する定義されていない参照ですffi-c++.o: 関数
__static_initialization_and_destruction_0(int, int)' 内: ffi-c++.cpp:(.text+0x94):
std::ios_base::Init::Init()' に対する定義されていない参照ですffi-c++.cpp:(.text+0xa9): `std::ios_base::Init::~Init()' に対する定義されていない参照です
collect2: error: ld returned 1 exit status
以下2つのファイルのコードです。
//ffi-c++.cpp
#include
#include <math.h>
extern "C" {
double sinc(double d){
return(sin(d)/d);
}
void hello(char* str){
std::cout << "hello " << str << std::endl;
}
}
//ffi-c++-main.c
#include <stdio.h>
double sinc(double x);
void hello(char *str);
int main(){
double f = 1.0;
hello("world");
fprintf(stderr,"sinc(%f) = %f\n",f,sinc(f));
}
The text was updated successfully, but these errors were encountered: