簡體   English   中英

包含jsoncpp后編譯錯誤

[英]Compilation error after including jsoncpp

當我嘗試構建測試源時,在此之后出現類似錯誤。

stl_tree.h:542:14: 錯誤:'__node' 沒有命名類型 ::new(__node) _Rb_tree_node<_Val>;

執行者的內容。

#include <CppUTest/TestHarness.h>
#include <CppUTest/CommandLineTestRunner.h>
#include <CppUTest/UtestMacros.h>
#include <CppUTestExt/MockSupport.h>

int main(int argc, char** argv) {
  MemoryLeakWarningPlugin::turnOffNewDeleteOverloads();
  return CommandLineTestRunner::RunAllTests(argc, argv);
}

我的測試的源代碼從下面開始包括。

#include <CppUTest/TestHarness.h>
#include <CppUTest/CommandLineTestRunner.h>
#include <CppUTest/UtestMacros.h>
#include <CppUTestExt/MockSupport.h>
#include <iostream>
#include "common/data_util_astro_cfg.h"

TEST_GROUP(ASTRO_UTIL_TEST) {
  void setup() { }
  void teardown() { }
};

“common/data_util_astro_cfg.h”文件包含以下內容。

#include "../data/data_type_file.h"
#include <json/json.h>

static AstroConfigs toAstroConfigs(std::string content)

我的問題是這些包含時出現編譯錯誤,當我刪除行 json.h include 時一切正常,我可以獲得二進制輸出。

我認為問題在於新運營商的沖突。 該解決方案由 Cpputest 端提供,位於http://cpputest.github.io/manual.html#memory_leak_detection 但不知何故不清楚。 :(

在包含 <map> 之后,已經在編譯錯誤上定義了這個問題。 它與我的非常相似,但問題已通過創建新項目解決。 在那種情況下,我別無選擇。 我正在使用 Yocto 項目,並且該項目也使用自動生成工具創建。

你能幫我解決這個問題嗎? (感謝您的時間。)

不幸的是,我在一段時間后解決了這個問題。 CPPUTest 似乎有問題。 在測試文件的頂部,我有幾個包含。 其中一些屬於 CPPUTest 庫,其中一些是我的。 我的包含遵循 CPPUTest 這就是為什么我收到錯誤的原因。 如果我改變他們的位置,它會正常工作。 這看起來毫無意義,但它是正確的解決方案。 “問題應該通過在包含列表底部定義 CPPUTEST 庫來解決。”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM