2015-09-07 129 views
0

我想要一個應用程序與PLC的工作。我使用這個庫:https://github.com/FreeOpcUa/freeopcuaEmbarcadero和免費opc ua

示例代碼:https://github.com/FreeOpcUa/freeopcua/blob/master/src/examples/example_client.cpp

但是,當我從庫包含頭文件(比如上例中),它提供了一個錯誤:

非虛函數「 DateTime :: DateTime(const DateTimeTime &)'聲明爲純。

當我搜索這個錯誤的特定行它表明我:

DateTime(const DateTime&) = default; 

我已經問它GitHub的頁面上,他們說這事做與我的編譯器。我從來沒有碰過它,所以它不應該有奇怪的選擇。

那麼我該如何解決這個問題?如果我的編譯器有問題,如何更改我的編譯器選項以修復它?

enter image description here

+0

你缺乏細節,比如你在哪個版本中使用的Embarcadero產品。一般來說,如果你使用例如C++ Builder創建32位應用程序,可以肯定的是,沒有選擇可以改變,但所使用的編譯器只是缺少所需的C++功能。 C++ Builder XE 10最近發佈了基於CLANG和LLVM的新型32位編譯器,可能值得一試。 –

+0

對不起,我正在使用C++ builder XE8 32位。我可以更改編譯器的一些選項:我在問題 – Bart

+0

@ThorstenSchöning中添加了屏幕截圖沒有XE 10,新Rad Studio沒有XE前綴,它只是Rad Studio 10. –

回答

0

是,bcc32不允許創建抽象類的實例。所以你可以將目標平臺更改爲win64並編譯沒有錯誤。如ThorstenSchöning所說,另一種方法是使用C++ Builder 10和基於bcc32c的CLANG編譯器,並且不會出錯。

+0

我無法設置它win 64.我想在安裝這個程序時做錯了什麼?或者我應該更新一些東西?我正在使用64位操作系統,因此不應該是問題 – Bart

+0

在安裝過程中,您需要安裝64位Windows支持,這是默認設置,需要在項目中添加64位Windows作爲目標平臺。有一個上下文菜單,您的目標平臺被指定爲32位Windows。 –