0

Visual Studio 2012 でクラス用のプログラムを作成し、Linux マシンで実行したいと考えています。Linux マシンでコンパイルを試みましたが、使用したライブラリの一部はプラットフォーム間の互換性がないと思われます。コードを変更しなくても Linux で実行できる .o ファイルを作成する方法はありますか?

言語: C++ 使用したライブラリは次のとおりです。

#include <iostream>
#include <queue>
#include <map>
#include <climits> 
#include <iterator>
#include <algorithm>
#include <fstream>
#include <string>
#include <iomanip>

Linux でコンパイルしようとするとどうなるか

Main.cpp: In function ‘int main()’:
Main.cpp:110:24: error: no matching function for call to             'std::basic_ifstream<char>::basic_ifstream(std::string&)’
Main.cpp:110:24: note: candidates are:
/usr/include/c++/4.6/fstream:460:7: note: std::basic_ifstream<_CharT,     _Traits>::basic_ifstream(const char*, std::ios_base::openmode) [with _CharT = char, _Traits     = std::char_traits<char>, std::ios_base::openmode = std::_Ios_Openmode]
/usr/include/c++/4.6/fstream:460:7: note:   no known conversion for argument 1 from     ‘std::string {aka std::basic_string<char>}’ to ‘const char*’
/usr/include/c++/4.6/fstream:446:7: note: std::basic_ifstream<_CharT,     _Traits>::basic_ifstream() [with _CharT = char, _Traits = std::char_traits<char>]
/usr/include/c++/4.6/fstream:446:7: note:   candidate expects 0 arguments, 1 provided
/usr/include/c++/4.6/fstream:420:11: note:     std::basic_ifstream<char>::basic_ifstream(const std::basic_ifstream<char>&)
/usr/include/c++/4.6/fstream:420:11: note:   no known conversion for argument 1 from     ‘std::string {aka std::basic_string<char>}’ to ‘const std::basic_ifstream<char>&’
4

3 に答える 3