• 締切済み

solaris xerces c++ です、宜しくお願いします

charmer29-2の回答

回答No.1

xercesのライブラリがリンクされていません。 コマンドラインの-lオプションでライブラリを指定するか、makefileを書き換える必要があります。 尚、末尾二行はリンクできなかったために実行モジュールを作ることができなかったと言うリンカのエラーメッセージと、リンカがエラー終了したと言うエラーメッセージです。

pon_ena
質問者

補足

ありがとうございます。 たまにしかsolarisをいじる機会がなく返信が遅れました。 すみません。 ライブラリをつけくわえてみたのですが、下記のエラーが残ってしまいます。これはどこがおかしいのでしょうか…? 未定義の 最初に参照している シンボル ファイル __1cG__CrunKpure_error6F_v_ libxerces-c.so.27.0 xercesc_2_7::XMLPlatformUtils::Initialize(char const*, char const*, xercesc_2_7::PanicHandler*, xercesc_2_7::MemoryManager*, bool)./cc09JcI8.o xercesc_2_7::XMLAttDefList::serialize(xercesc_2_7::XSerializeEngine&)./cc09JcI8.o xercesc_2_7::XMLAttDefList::getProtoType() const ./cc09JcI8.o xercesc_2_7::AbstractDOMParser::getDocument() ./cc09JcI8.o __1cG__CrunIex_alloc6FI_pv_ libxerces-c.so.27.0 __1cG__CrunIex_throw6Fpvpkn0AQstatic_type_info_pF1_v_v_ libxerces-c.so.27.0 xercesc_2_7::XMLString::release(char**)./cc09JcI8.o xercesc_2_7::PSVIItem::getActualValue() const./cc09JcI8.o typeinfo for xercesc_2_7::SAXParseException./cc09JcI8.o xercesc_2_7::XMemory::operator delete(void*)./cc09JcI8.o xercesc_2_7::XMemory::operator new(unsigned)./cc09JcI8.o xercesc_2_7::XMLPlatformUtils::fgMemoryManager ./cc09JcI8.o xercesc_2_7::DTDEntityDecl::getProtoType() const ./cc09JcI8.o xercesc_2_7::SAXParseException::~SAXParseException [in-charge]()./cc09JcI8.o xercesc_2_7::SAXParseException::SAXParseException[in-charge](xercesc_2_7::SAXParseException const&)./cc09JcI8.o xercesc_2_7::XMLString::transcode(unsigned short const*)./cc09JcI8.o __1cG__CrunGex_get6F_pv_ libxerces-c.so.27.0 xercesc_2_7::AbstractDOMParser::parse(char const*)./cc09JcI8.o __1cG__CrunMex_rethrow_q6F_v_ libxerces-c.so.27.0 xercesc_2_7::XMLUni::fgXercescDefaultLocale ./cc09JcI8.o xercesc_2_7::DTDEntityDecl::isSerializable() const ./cc09JcI8.o xercesc_2_7::DTDEntityDecl::serialize(xercesc_2_7::XSerializeEngine&)./cc09JcI8.o xercesc_2_7::XMLEntityDecl::~XMLEntityDecl [not-in-charge]()./cc09JcI8.o xercesc_2_7::XercesDOMParser::XercesDOMParser[in-charge](xercesc_2_7::XMLValidator*, xercesc_2_7::MemoryManager*, xercesc_2_7::XMLGrammarPool*)./cc09JcI8.o __1cG__CrunSregister_exit_code6FpG_v_v_ libxerces-c.so.27.0 __1cG__CrunHex_skip6F_b_ libxerces-c.so.27.0 __1cG__CrunIex_clean6F_v_ libxerces-c.so.27.0 xercesc_2_7::XMLAttDefList::isSerializable() const ./cc09JcI8.o __1cG__CrunKex_rethrow6F_v_ libxerces-c.so.27.0 typeinfo for xercesc_2_7::XMLEntityDecl./cc09JcI8.o c::c(N6, (int0_t)) libxerces-c.so.27.0 c::c(n6, (int0_t)) libxerces-c.so.27.0 __1c2K6Fpv_v_ libxerces-c.so.27.0 __1c2k6Fpv_v_ libxerces-c.so.27.0 ld: 重大なエラー: シンボル参照エラー。a.out に書き込まれる出力はありません。 collect2: ld returned 1 exit status

関連するQ&A

  • C++がコンパイルできない...

    非常に初歩的な問題で恐縮なのですが、以下のようなシンプルなプログラムでコンパイルが出来ず困っております。 何がいけないのか、もしくは何をチェックすればよいかを教えて下さい *_*; program #include <iostream.h> int main(void){ cout << "matumoto"; } ---- 最初 void main(void)とした所、怒られたため、int ...としましたが、更に以下のようなエラーが出力されてしまいました 未定義の 最初に参照している シンボル ファイル std::ios_base::Init::~Init [in-charge]()/var/tmp//ccxj7cux.o std::ios_base::Init::Init[in-charge]()/var/tmp//ccxj7cux.o std::cout /var/tmp//ccxj7cux.o std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)/var/tmp//ccxj7cux.o __gxx_personality_v0 /var/tmp//ccxj7cux.o ld: 重大なエラー: シンボル参照エラー。a.out に書き込まれる出力はありません。 collect2: ld returned 1 exit status [環境] Solaris 8 gcc %>>gcc -ver Reading specs from /usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.3/specs Configured with: ../configure --disable-nls --with-as=/usr/ccs/bin/as --with-ld=/usr/ccs/bin/ld Thread model: posix gcc version 3.3 すみませんが、宜しくお願い致します。

  • C++STLについての質問です。

    C++STLについての質問です。 Visual C++ 2008 Express Edition を使用してDirectXアプリケーションを 作成しています。 その折、std::listテンプレートを使用する機会があったのですが、このリストを 使用しますと、 リンクしています... LINK : warning LNK4098: defaultlib 'LIBCMT' は他のライブラリの使用と競合しています。/NODEFAULTLIB:library を使用してください。 libcpmtd.lib(stdthrow.obj) : error LNK2019: 未解決の外部シンボル __CrtDbgReportW が関数 "void __cdecl std::_Debug_message(wchar_t const *,wchar_t const *,unsigned int)" (?_Debug_message@std@@YAXPB_W0I@Z) で参照されました。 libcpmtd.lib(xdebug.obj) : error LNK2019: 未解決の外部シンボル __malloc_dbg が関数 "void * __cdecl operator new(unsigned int,struct std::_DebugHeapTag_t const &,char *,int)" (??2@YAPAXIABU_DebugHeapTag_t@std@@PADH@Z) で参照されました。 libcpmtd.lib(xdebug.obj) : error LNK2019: 未解決の外部シンボル __free_dbg が関数 "void __cdecl operator delete(void *,struct std::_DebugHeapTag_t const &,char *,int)" (??3@YAXPAXABU_DebugHeapTag_t@std@@PADH@Z) で参照されました。 fatal error LNK1120: 外部参照 3 が未解決です。 とのエラーが吐かれます。 ネットで検索すると、ソリューション構成をDebugからReleaseにすれば良いとの記述が ありましたので、実行してみました。しかし、 リンクしています... error LNK2001: 外部シンボル "_D3DXCreateTextureFromFileExW@56" は未解決です。 error LNK2001: 外部シンボル "_D3DXCreateSprite@8" は未解決です。 error LNK2001: 外部シンボル "_D3DXGetImageInfoFromFileW@8" は未解決です。 error LNK2001: 外部シンボル "_Direct3DCreate9@4" は未解決です。 fatal error LNK1120: 外部参照 4 が未解決です とのエラーが吐かれてしまいました。 尚、コード生成モードは、マルチスレッド(/MT)で作成しています。 どなたか、この問題を解決する方法をご存知ないでしょうか? よろしくお願いします。

  • C++ operator演算子の動作について

    下記プログラムを実行した時のoperator演算子の動作についての質問になります。 (VC++2010で動作確認) #include <iostream> struct UInterger { unsigned long ul_ui; UInterger( unsigned long ul_value ) : ul_ui( ul_value ) {} operator unsigned short() { return (unsigned short)ul_ui; } //(1)の時になぜ使用される?. operator unsigned int() { return (unsigned int)ul_ui; } operator unsigned long() { return (unsigned long)ul_ui; } }; int main() { UInterger s_uin(2); int i_temp = s_uin; // (1)コンパイルが通る. short s_temp = s_uin; // (2)コンパイルエラー. long l_temp = s_uin; // (3)コンパイルエラー. return 0; } (2)と(3)はoperatorの定義がないためコンパイルエラーとなるのは理解できます。 (1)でなぜコンパイルが通るのかがわかりません。 下記の定義を追加しない限り、コンパイルは通らないのではと考えております… operator int() { return (int)ul_ui; } 試しに(2)と(3)をコメントアウトしてステップ実行したところ (1)の時に下記のunsigned short()のオペレータが使用されておりました。 operator unsigned short() { return (unsigned short)ul_ui; } どなたか詳しい方、ご教授の程よろしくお願い致します。

  • エラー 未解決の外部シンボル

    プログラム初心者です。 以下のエラーが出て解決方法がわからず困っております。ご存知の方宜しくお願いします。 エラー 1 error LNK2019: 未解決の外部シンボル __imp__ntohs@4 が関数 "void __cdecl packet_print(unsigned char *,struct pcap_pkthdr const *,unsigned char const *)" (?packet_print@@YAXPAEPBUpcap_pkthdr@@PBE@Z) で参照されました。 main.obj エラー 2 fatal error LNK1120: 外部参照 1 が未解決です。 C:\Documents and Settings\谷本\My Documents\Visual Studio 2005\Projects\Packetmoni_Base\Debug\Packetmoni_Base.exe

  • 『外部シンボル~未解決です。』のエラーについて

    以前、Cで書かれているプログラムがあり、 今回、マネージプログラム上(.net framework)でソースを そのまま流用しようとしています。 貼り付けたのはいいのですが、コンパイルすると以下のような エラーが出力されてしまいます。 たぶん、cのライブラリ(関数)を使用しているからだと思うのですが、 対処方法が一向に分かりません。 TestDll error LNK2001: 外部シンボル ""int __cdecl sprintf(char *,char const *,...)" (?sprintf@@$$J0YAHPADPBDZZ)" は未解決です。 TestDll error LNK2001: 外部シンボル ""char * __cdecl strcat(char *,char const *)" (?strcat@@$$J0YAPADPADPBD@Z)" は未解決です。 TestDll error LNK2001: 外部シンボル ""int __cdecl strncmp(char const *,char const *,unsigned int)" (?strncmp@@$$J0YAHPBD0I@Z)" は未解決です。 御存知の方、ご教授お願いいたします。

  • 固定長配列の参照に変換するoperator

    固定長配列のラッパークラスを作っています。 以下のように固定長配列への参照に変換するoperatorを作りたいのですが、 かっこをどのようにつければいいのかわかりません。 同じ型のgetBuf関数を作ることはできました。 またtypedefを使えばできることはわかっていますが、使わない方法を知りたいです。 struct STRCONSTBUF{ char buf[2]; const char (&getBuf())[2]{ return buf; } //↓ここで構文エラー //getBufと同じ型のoperatorにしたい operator const char(&())[2]{ return buf; } }; 環境: Visual C++ 2008 Express よろしくお願いします。

  • c++のビルドエラーについて

    昨日からc++を学習し始めました。 pythonは2年ほどになりますが、c++は初めてだったので、コンパイルでエラーが起こってしまいわからなくなってしまったので質問させていただきました。 hello worldを出力しようと思いやってみたのですが、どこでエラーが起こっているのかがわかりません。 下記が私の書いたソースコードです。 #include <iostream> using namespace std; int main(){ cout << "HelloWorld." << endl; } エラーメッセージ C:\Users\ユーザー名\AppData\Local\Temp\ccKwbLoc.o: In function `main': C:/Users/ユーザー名/Documents/cpp/hello.cpp:4: undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)' C:/Users/ユーザー名/Documents/cpp/hello.cpp:4: undefined reference to `std::ostream::operator<<(std::ostream& (*)(std::ostream&))' C:\Users\ユーザー名\AppData\Local\Temp\ccKwbLoc.o: In function `__tcf_0': C:/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/iostream:74: undefined reference to `std::ios_base::Init::~Init()' C:\Users\ユーザー名\AppData\Local\Temp\ccKwbLoc.o: In function `__static_initialization_and_destruction_0': t::Init()' e to `std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&)' C:\Users\ユーザー名\AppData\Local\Temp\ccKwbLoc.o:hello.cpp:(.rdata$.refptr._ZSt4cout[.refptr._ZSt4cout]+0x0): undefined reference to `std::cout' collect2.exe: error: ld returned 1 exit status os:windows11 home 64ビット コンパイラ gcc (x86_64-posix-sjlj-rev0, Built by MinGW-W64 project) 8.1.0 エディタ:vscode よろしくお願いいたします。

  • ビルドエラー

    現在wrapi(http://sysnet.ucsd.edu/pawn/wrapi/download.html)を使いサンプルプログラムWrapiTest.cpp をVC++6.0で実行を試みています。しかしコンパイルは通るのですビルドがうまくいきません。 ビルドしようとすると以下のエラーが出力しました。 リンク中... WrapiTest.obj : error LNK2001: 外部シンボル ""__declspec(dllimport) long __cdecl WRAPIGetPacketStats(struct DOT_11_STATS *)" (__imp_?WRAPIGetPacketStats@@YAJPAUDOT_11_STATS@@@Z)" は未解決です WrapiTest.obj : error LNK2001: 外部シンボル ""__declspec(dllimport) long __cdecl WRAPIGetAssociatedAP(unsigned char * const)" (__imp_?WRAPIGetAssociatedAP@@YAJQAE@Z)" は未解決です WrapiTest.obj : error LNK2001: 外部シンボル ""__declspec(dllimport) long __cdecl WRAPIGetRTSThreshold(unsigned long *)" (__imp_?WRAPIGetRTSThreshold@@YAJPAK@Z)" は未解決です WrapiTest.obj : error LNK2001: 外部シンボル ""__declspec(dllimport) long __cdecl WRAPISetSSId(unsigned char *,unsigned long &)" (__imp_?WRAPISetSSId@@YAJPAEAAK@Z)" は未解決です WrapiTest.obj : error LNK2001: 外部シンボル ""__declspec(dllimport) long __cdecl WRAPIGetSSId(unsigned char *)" (__imp_?WRAPIGetSSId@@YAJPAE@Z)" は未解決です WrapiTest.obj : error LNK2001: 外部シンボル ""__declspec(dllimport) long __cdecl WRAPIOpenNdisDevice(unsigned short *)" (__imp_?WRAPIOpenNdisDevice@@YAJPAG@Z)" は未解決です (省略) Debug/WrapiTest.exe : fatal error LNK1120: 外部参照 7 が未解決です。 何が原因なのか教えていただけないでしょうか。 よろしくお願いします。

  • C言語で他のファイルの値を参照する方法

    現在、組み込み系のソフト開発を行っています。 ファイルが、main.c と sub.c があります。 main.cで  #define kcode 0x01 と定義します。 その後、 sub.cでこのkcode の値を参照したいため、 #if kcode == 0x01 #endif と書きましたがコンパイルエラーになりました。 仕方なく、main.cで const unsigned char kcode 0x01; と書いて、sub.cで extern unsigned char kcode; if(kcode == 0x01){ } と書きました。 これしか方法がないのでしょうか? よろしくお願いします。

  • cプログラム

    /*三角形の面積を求めるプログラム*/ #include<stdio.h> #include<math.h> main() { double a,b,c,menseki; printf("AC間の長さと角度と底辺ABを入力してください\n"); scanf("%f %f %f",&b,&a,&c); menseki=c*b*sin(a*3.1459/180.0)*0.5; printf("面積は%fです\n",menseki); return(0); } 三角形の面積を求めるプログラムなのですが以下のようなエラーが出てきてしまいます 未定義の 最初に参照している シンボル ファイル sin /var/tmp//ccSTvXNz.o ld: 重大なエラー: シンボル参照エラー。kadai9 に書き込まれる出力はありません。 collect2: ld はステータス 1 で終了しました どこを修正すればいいでしょうか?