I am using "arm-oe-linux-gnueabi-gcc -E -march=armv7-a -mfloat-abi=softfp -mfpu=neon --sysroot=$SDKTARGETSYSROOT" compiler wherein I am facing issue in linking the application folder.
I am using the following
LINKER = arm-oe-linux-gnueabi-gcc -E -march=armv7-a -mfloat-abi=softfp -mfpu=neon --sysroot=$SDKTARGETSYSROOT -o instead of
LINKER = g++ -o(which was present in example provided).
i am facing this error:-
Compiled src/communication.cpp successfully!
Compiled src/GuruxDLMSClientExample.cpp successfully!
arm-oe-linux-gnueabi-gcc: warning: obj/communication.o: linker input file unused because linking not done
arm-oe-linux-gnueabi-gcc: warning: obj/GuruxDLMSClientExample.o: linker input file unused because linking not done
Linking complete!
I am unable to get gurux.dlms.client.bin file in the bin folder. What would be the issue?
I have used this compiler "arm-oe-linux-gnueabi-g++ -march=armv7-a -mfloat-abi=softfp -mfpu=neon --sysroot=$SDKTARGETSYSROOT"
and i am facing this below issue while compiling development folder.
Compiled src/GXAdjacentCell.cpp successfully!
In file included from src/../include/GXPlcSettings.h:41:0,
from src/../include/GXDLMSSettings.h:41,
from src/../include/GXAPDU.h:42,
from src/GXAPDU.cpp:35:
src/../include/GXDLMSPlcRegister.h:44:5: error: 'uint16_t' does not name a type
uint16_t m_AllowedTimeSlots;
^
src/../include/GXDLMSPlcRegister.h:59:5: error: 'uint16_t' does not name a type
uint16_t GetAllowedTimeSlots()
^
src/../include/GXDLMSPlcRegister.h:64:30: error: 'uint16_t' has not been declared
void SetAllowedTimeSlots(uint16_t value)
^
src/../include/GXDLMSPlcRegister.h: In member function 'void CGXDLMSPlcRegister::SetAllowedTimeSlots(int)':
src/../include/GXDLMSPlcRegister.h:66:9: error: 'm_AllowedTimeSlots' was not declared in this scope
m_AllowedTimeSlots = value;
^
In file included from src/../include/GXPlcSettings.h:42:0,
from src/../include/GXDLMSSettings.h:41,
from src/../include/GXAPDU.h:42,
from src/GXAPDU.cpp:35:
src/../include/GXDLMSPlcMeterInfo.h: At global scope:
src/../include/GXDLMSPlcMeterInfo.h:48:5: error: 'uint16_t' does not name a type
uint16_t m_SourceAddress;
^
src/../include/GXDLMSPlcMeterInfo.h:53:5: error: 'uint16_t' does not name a type
uint16_t m_DestinationAddress;
^
src/../include/GXDLMSPlcMeterInfo.h:65:5: error: 'uint16_t' does not name a type
uint16_t GetSourceAddress()
^
src/../include/GXDLMSPlcMeterInfo.h:70:27: error: 'uint16_t' has not been declared
void SetSourceAddress(uint16_t value)
^
src/../include/GXDLMSPlcMeterInfo.h:78:5: error: 'uint16_t' does not name a type
uint16_t GetDestinationAddress()
^
src/../include/GXDLMSPlcMeterInfo.h:83:32: error: 'uint16_t' has not been declared
void SetDestinationAddress(uint16_t value)
^
src/../include/GXDLMSPlcMeterInfo.h: In member function 'void CGXDLMSPlcMeterInfo::SetSourceAddress(int)':
src/../include/GXDLMSPlcMeterInfo.h:72:9: error: 'm_SourceAddress' was not declared in this scope
m_SourceAddress = value;
^
src/../include/GXDLMSPlcMeterInfo.h: In member function 'void CGXDLMSPlcMeterInfo::SetDestinationAddress(int)':
src/../include/GXDLMSPlcMeterInfo.h:85:9: error: 'm_DestinationAddress' was not declared in this scope
m_DestinationAddress = value;
^
In file included from src/../include/GXDLMSSettings.h:41:0,
from src/../include/GXAPDU.h:42,
from src/GXAPDU.cpp:35:
src/../include/GXPlcSettings.h: At global scope:
src/../include/GXPlcSettings.h:74:5: error: 'uint16_t' does not name a type
uint16_t m_MacSourceAddress;
^
src/../include/GXPlcSettings.h:78:5: error: 'uint16_t' does not name a type
uint16_t m_MacDestinationAddress;
^
src/../include/GXPlcSettings.h:86:5: error: 'uint16_t' does not name a type
uint16_t m_AllowedTimeSlots;
^
src/../include/GXPlcSettings.h:124:5: error: 'uint16_t' does not name a type
uint16_t GetMacSourceAddress();
^
src/../include/GXPlcSettings.h:125:30: error: 'uint16_t' has not been declared
void SetMacSourceAddress(uint16_t value);
^
src/../include/GXPlcSettings.h:130:5: error: 'uint16_t' does not name a type
uint16_t GetMacDestinationAddress();
^
src/../include/GXPlcSettings.h:131:35: error: 'uint16_t' has not been declared
void SetMacDestinationAddress(uint16_t value);
^
src/../include/GXPlcSettings.h:142:5: error: 'uint16_t' does not name a type
uint16_t GetAllowedTimeSlots();
^
src/../include/GXPlcSettings.h:143:30: error: 'uint16_t' has not been declared
void SetAllowedTimeSlots(uint16_t value);
^
src/../include/GXPlcSettings.h:182:45: error: 'uint16_t' has not been declared
int ParseDiscover(CGXByteBuffer& value, uint16_t sa, uint16_t da, std::vector<CGXDLMSPlcMeterInfo>& list);
^
src/../include/GXPlcSettings.h:182:58: error: 'uint16_t' has not been declared
int ParseDiscover(CGXByteBuffer& value, uint16_t sa, uint16_t da, std::vector<CGXDLMSPlcMeterInfo>& list);
^
In file included from src/../include/GXDLMSSettings.h:43:0,
from src/../include/GXAPDU.h:42,
from src/GXAPDU.cpp:35:
src/../include/GXCipher.h:84:20: error: 'uint32_t' has not been declared
static int Int(uint32_t* rk,
^
src/../include/GXCipher.h:207:9: error: 'uint64_t' has not been declared
uint64_t& InvocationCounter);
^
In file included from src/../include/GXAPDU.h:42:0,
from src/GXAPDU.cpp:35:
src/../include/GXDLMSSettings.h:203:5: error: 'uint64_t' does not name a type
uint64_t m_ExpectedInvocationCounter;
^
In file included from src/../include/GXAPDU.h:42:0,
from src/GXAPDU.cpp:35:
src/../include/GXDLMSSettings.h:500:5: error: 'uint64_t' does not name a type
uint64_t GetExpectedInvocationCounter();
^
src/../include/GXDLMSSettings.h:501:39: error: 'uint64_t' has not been declared
void SetExpectedInvocationCounter(uint64_t uint32_t);
^
In file included from src/../include/GXDLMSTranslatorStructure.h:43:0,
from src/../include/GXAPDU.h:43,
from src/GXAPDU.cpp:35:
src/../include/TranslatorSimpleTags.h: In static member function 'static unsigned char CTranslatorSimpleTags::GetError(DLMS_SERVICE_ERROR, std::string)':
src/../include/TranslatorSimpleTags.h:826:37: error: 'atol' was not declared in this scope
ret = atol(value.c_str());
^
In file included from src/../include/GXDLMSTranslatorStructure.h:44:0,
from src/../include/GXAPDU.h:43,
from src/GXAPDU.cpp:35:
src/../include/TranslatorStandardTags.h: In static member function 'static unsigned char CTranslatorStandardTags::GetError(DLMS_SERVICE_ERROR, std::string)':
src/../include/TranslatorStandardTags.h:826:37: error: 'atol' was not declared in this scope
ret = atol(value.c_str());
^
src/GXAPDU.cpp: In static member function 'static int CGXAPDU::ParseInitiate(bool, CGXDLMSSettings&, CGXCipher*, CGXByteBuffer&, CGXDLMSTranslatorStructure*)':
src/GXAPDU.cpp:842:17: error: 'uint64_t' was not declared in this scope
uint64_t invocationCounter;
^
src/GXAPDU.cpp:845:44: error: 'invocationCounter' was not declared in this scope
data, security, suite, invocationCounter)) != 0)
^
src/GXAPDU.cpp:876:9: error: 'uint64_t' was not declared in this scope
uint64_t invocationCounter;
^
src/GXAPDU.cpp:878:79: error: 'invocationCounter' was not declared in this scope
settings.GetCipher()->GetBlockCipherKey(), data, security, suite, invocationCounter)) != 0)
^
src/GXAPDU.cpp:890:22: error: 'class CGXDLMSSettings' has no member named 'GetExpectedInvocationCounter'
if (settings.GetExpectedInvocationCounter() != 0)
^
src/GXAPDU.cpp:892:17: error: 'invocationCounter' was not declared in this scope
if (invocationCounter != settings.GetExpectedInvocationCounter())
^
src/GXAPDU.cpp:892:47: error: 'class CGXDLMSSettings' has no member named 'GetExpectedInvocationCounter'
if (invocationCounter != settings.GetExpectedInvocationCounter())
^
src/GXAPDU.cpp:896:55: error: 'invocationCounter' was not declared in this scope
settings.SetExpectedInvocationCounter(1 + invocationCounter);
^
make: *** [obj/GXAPDU.o] Error 1
Hi Nagendra,
Hi Nagendra,
Have you created obj and bin folders? You also need to run make in the development folder first to make guruxdlms.lib
BR,
Mikko
Dear Mikko,
Dear Mikko,
I have used this compiler "arm-oe-linux-gnueabi-g++ -march=armv7-a -mfloat-abi=softfp -mfpu=neon --sysroot=$SDKTARGETSYSROOT"
and i am facing this below issue while compiling development folder.
Compiled src/GXAdjacentCell.cpp successfully!
In file included from src/../include/GXPlcSettings.h:41:0,
from src/../include/GXDLMSSettings.h:41,
from src/../include/GXAPDU.h:42,
from src/GXAPDU.cpp:35:
src/../include/GXDLMSPlcRegister.h:44:5: error: 'uint16_t' does not name a type
uint16_t m_AllowedTimeSlots;
^
src/../include/GXDLMSPlcRegister.h:59:5: error: 'uint16_t' does not name a type
uint16_t GetAllowedTimeSlots()
^
src/../include/GXDLMSPlcRegister.h:64:30: error: 'uint16_t' has not been declared
void SetAllowedTimeSlots(uint16_t value)
^
src/../include/GXDLMSPlcRegister.h: In member function 'void CGXDLMSPlcRegister::SetAllowedTimeSlots(int)':
src/../include/GXDLMSPlcRegister.h:66:9: error: 'm_AllowedTimeSlots' was not declared in this scope
m_AllowedTimeSlots = value;
^
In file included from src/../include/GXPlcSettings.h:42:0,
from src/../include/GXDLMSSettings.h:41,
from src/../include/GXAPDU.h:42,
from src/GXAPDU.cpp:35:
src/../include/GXDLMSPlcMeterInfo.h: At global scope:
src/../include/GXDLMSPlcMeterInfo.h:48:5: error: 'uint16_t' does not name a type
uint16_t m_SourceAddress;
^
src/../include/GXDLMSPlcMeterInfo.h:53:5: error: 'uint16_t' does not name a type
uint16_t m_DestinationAddress;
^
src/../include/GXDLMSPlcMeterInfo.h:65:5: error: 'uint16_t' does not name a type
uint16_t GetSourceAddress()
^
src/../include/GXDLMSPlcMeterInfo.h:70:27: error: 'uint16_t' has not been declared
void SetSourceAddress(uint16_t value)
^
src/../include/GXDLMSPlcMeterInfo.h:78:5: error: 'uint16_t' does not name a type
uint16_t GetDestinationAddress()
^
src/../include/GXDLMSPlcMeterInfo.h:83:32: error: 'uint16_t' has not been declared
void SetDestinationAddress(uint16_t value)
^
src/../include/GXDLMSPlcMeterInfo.h: In member function 'void CGXDLMSPlcMeterInfo::SetSourceAddress(int)':
src/../include/GXDLMSPlcMeterInfo.h:72:9: error: 'm_SourceAddress' was not declared in this scope
m_SourceAddress = value;
^
src/../include/GXDLMSPlcMeterInfo.h: In member function 'void CGXDLMSPlcMeterInfo::SetDestinationAddress(int)':
src/../include/GXDLMSPlcMeterInfo.h:85:9: error: 'm_DestinationAddress' was not declared in this scope
m_DestinationAddress = value;
^
In file included from src/../include/GXDLMSSettings.h:41:0,
from src/../include/GXAPDU.h:42,
from src/GXAPDU.cpp:35:
src/../include/GXPlcSettings.h: At global scope:
src/../include/GXPlcSettings.h:74:5: error: 'uint16_t' does not name a type
uint16_t m_MacSourceAddress;
^
src/../include/GXPlcSettings.h:78:5: error: 'uint16_t' does not name a type
uint16_t m_MacDestinationAddress;
^
src/../include/GXPlcSettings.h:86:5: error: 'uint16_t' does not name a type
uint16_t m_AllowedTimeSlots;
^
src/../include/GXPlcSettings.h:124:5: error: 'uint16_t' does not name a type
uint16_t GetMacSourceAddress();
^
src/../include/GXPlcSettings.h:125:30: error: 'uint16_t' has not been declared
void SetMacSourceAddress(uint16_t value);
^
src/../include/GXPlcSettings.h:130:5: error: 'uint16_t' does not name a type
uint16_t GetMacDestinationAddress();
^
src/../include/GXPlcSettings.h:131:35: error: 'uint16_t' has not been declared
void SetMacDestinationAddress(uint16_t value);
^
src/../include/GXPlcSettings.h:142:5: error: 'uint16_t' does not name a type
uint16_t GetAllowedTimeSlots();
^
src/../include/GXPlcSettings.h:143:30: error: 'uint16_t' has not been declared
void SetAllowedTimeSlots(uint16_t value);
^
src/../include/GXPlcSettings.h:182:45: error: 'uint16_t' has not been declared
int ParseDiscover(CGXByteBuffer& value, uint16_t sa, uint16_t da, std::vector<CGXDLMSPlcMeterInfo>& list);
^
src/../include/GXPlcSettings.h:182:58: error: 'uint16_t' has not been declared
int ParseDiscover(CGXByteBuffer& value, uint16_t sa, uint16_t da, std::vector<CGXDLMSPlcMeterInfo>& list);
^
In file included from src/../include/GXDLMSSettings.h:43:0,
from src/../include/GXAPDU.h:42,
from src/GXAPDU.cpp:35:
src/../include/GXCipher.h:84:20: error: 'uint32_t' has not been declared
static int Int(uint32_t* rk,
^
src/../include/GXCipher.h:207:9: error: 'uint64_t' has not been declared
uint64_t& InvocationCounter);
^
In file included from src/../include/GXAPDU.h:42:0,
from src/GXAPDU.cpp:35:
src/../include/GXDLMSSettings.h:203:5: error: 'uint64_t' does not name a type
uint64_t m_ExpectedInvocationCounter;
^
In file included from src/../include/GXAPDU.h:42:0,
from src/GXAPDU.cpp:35:
src/../include/GXDLMSSettings.h:500:5: error: 'uint64_t' does not name a type
uint64_t GetExpectedInvocationCounter();
^
src/../include/GXDLMSSettings.h:501:39: error: 'uint64_t' has not been declared
void SetExpectedInvocationCounter(uint64_t uint32_t);
^
In file included from src/../include/GXDLMSTranslatorStructure.h:43:0,
from src/../include/GXAPDU.h:43,
from src/GXAPDU.cpp:35:
src/../include/TranslatorSimpleTags.h: In static member function 'static unsigned char CTranslatorSimpleTags::GetError(DLMS_SERVICE_ERROR, std::string)':
src/../include/TranslatorSimpleTags.h:826:37: error: 'atol' was not declared in this scope
ret = atol(value.c_str());
^
In file included from src/../include/GXDLMSTranslatorStructure.h:44:0,
from src/../include/GXAPDU.h:43,
from src/GXAPDU.cpp:35:
src/../include/TranslatorStandardTags.h: In static member function 'static unsigned char CTranslatorStandardTags::GetError(DLMS_SERVICE_ERROR, std::string)':
src/../include/TranslatorStandardTags.h:826:37: error: 'atol' was not declared in this scope
ret = atol(value.c_str());
^
src/GXAPDU.cpp: In static member function 'static int CGXAPDU::ParseInitiate(bool, CGXDLMSSettings&, CGXCipher*, CGXByteBuffer&, CGXDLMSTranslatorStructure*)':
src/GXAPDU.cpp:842:17: error: 'uint64_t' was not declared in this scope
uint64_t invocationCounter;
^
src/GXAPDU.cpp:845:44: error: 'invocationCounter' was not declared in this scope
data, security, suite, invocationCounter)) != 0)
^
src/GXAPDU.cpp:876:9: error: 'uint64_t' was not declared in this scope
uint64_t invocationCounter;
^
src/GXAPDU.cpp:878:79: error: 'invocationCounter' was not declared in this scope
settings.GetCipher()->GetBlockCipherKey(), data, security, suite, invocationCounter)) != 0)
^
src/GXAPDU.cpp:890:22: error: 'class CGXDLMSSettings' has no member named 'GetExpectedInvocationCounter'
if (settings.GetExpectedInvocationCounter() != 0)
^
src/GXAPDU.cpp:892:17: error: 'invocationCounter' was not declared in this scope
if (invocationCounter != settings.GetExpectedInvocationCounter())
^
src/GXAPDU.cpp:892:47: error: 'class CGXDLMSSettings' has no member named 'GetExpectedInvocationCounter'
if (invocationCounter != settings.GetExpectedInvocationCounter())
^
src/GXAPDU.cpp:896:55: error: 'invocationCounter' was not declared in this scope
settings.SetExpectedInvocationCounter(1 + invocationCounter);
^
make: *** [obj/GXAPDU.o] Error 1
Kindly help me in regards with this.
Thanks in advance
Nagendra
Hi Nagendra,
Hi Nagendra,
uint16_t is not defined. Can you find stdint.h? What distro you are using?
BR,
Mikko