我不太擅長編碼/編程,但我正在嘗試編譯Linux源代碼。嘗試編譯Linux源代碼時出錯
繼errormessage的顯示出來:
error: invalid conversion from ‘const char*’ to ‘char*’ [-fpermissive]
char *ptr = strchr(in, ch);
雖然 「谷歌搜索」 我周圍便無法找到一個有益的答案。 我想這是它失敗的部分:
//////////////////////////////////////////////////////////////////////////
/// Parses an IP address string
///
/// @param[out] out array containing the IP address in raw 4-byte format
/// @param in string containing an IP address in 'nnn.nnn.nnn.nnn'
/// notation
//////////////////////////////////////////////////////////////////////////
int parseIP(uint8_t *out, const char *in)
{
in_addr addr, haddr;
int c = 0;
int ch = '.';
char *ptr = strchr(in, ch);
while(ptr) {
++c;
ptr = strchr(ptr + 1, ch);
}
if(c != 3)
return -EINVAL;
if(inet_aton(in, &addr) == 0)
return -EINVAL;
haddr.s_addr = ntohl(addr.s_addr);
for(int i = 0; i < 4; ++i)
out[ i ] = ((uint8_t *)&haddr.s_addr)[ 3 - i ];
return 0;
}
希望有人可以幫助。
問候, 馬克
嗨大衛,
我已經找到了部分被它被稱爲,並試圖改變它,但還是同樣的errormessage的同時採用日「製作」命令。
case 'i':
if(getuid() != 0) {
std::cerr << "Error: you need to have "
"root privileges in "
"order to use the "
"-i/--ipaddr option"
<< std::endl;
exit(1);
}
if(strncmp(optarg, "dhcp", 4) == 0 &&
strlen(optarg) == 4)
opt_devip_dhcp = 1;
else if(parseIP(opt_devip, (char *)optarg)) {
std::cerr << "Error: bad IP address" <<
std::endl;
exit(3);
}
opt_devip_set = 1;
break;
case 'm':
if(parseIP(opt_devmask, (char *)optarg)) {
std::cerr << "Error: bad network mask" <<
std::endl;
exit(7);
}
opt_devmask_set = 1;
break;