0
CプロジェクトをC++に変換する作業ですが、このコードは通常のC++プロジェクトで動作しますが、テストを高速化するためにリモートデバッグを開始すると、 va_startマクロシンボル '__builtin_va_start'を解決できません。Visual StudioのLinuxリモートデバッグ
#include "Utilities.h"
#include <cstdarg>
#include <stdarg.h>
void Utilities::PrintLine(const char* text, ...)
{
char buffer[100];
va_list args; // resolved just fine
va_start(text, args); // cannot resolve
vsprintf(buffer, text, args);
va_end(args); // cannot resolve
std::cout << buffer << "\n";
}
これは同じエラーのために動作しません。なんらかの理由でコンパイラにはva_startが定義されていないので、これは奇妙です。 – user2835725
Visual Studio 2015 Pro Update 3では、Windows 10でネイティブに、GCC 4.9.2でMageia 5 LinuxのVC_Linux拡張機能(1.0.5)経由でうまく動作します。 Windowsビルドでは、私は 'vsprintf_s'を使うことを提案しましたが、そうでなければまったく同じコードと結果でした。デフォルトのプロジェクトタイプと標準ライブラリ。エラーメッセージが表示されるように、コンパイラの出力を共有することをお勧めします。 – stanthomas
ちょっと考えました。 Linuxでは、GCCは 'stdarg.h 'ヘッダの' va_start'を '__builtin_va_start'にマッピングします。しかし、これは起こり得ない状況があります。あなたの場合、これらのいずれかが適用されますか?どんなコンパイラツールとデバッグツールを使用していて、どのシステムでそれらを実行していますか? – stanthomas