Solution:
Locate /usr/lib/Python 3/dist packages/rospkg/OS_detect.Py
, replace all Ubuntu characters with deepin
Solution:
Locate /usr/lib/Python 3/dist packages/rospkg/OS_detect.Py
, replace all Ubuntu characters with deepin
Virtual machine startup error XFS
XFS: log mount mount/recovery failed: error – 117 when the virtual machine is started. In fact, the virtual machine cannot be mounted. The solution is as follows:
Solution:
① Restart the virtual machine. After entering the startup interface, press e to enter the editing interface
② Find the line of linux16 and make the following modifications
change RO to RW init =/sysboot/bin/sh, and delete console = ttys0
③ After modification, press Ctrl + X to start
④ a few minutes after startup, the command line will appear
⑤ On the command line, enter systemctl status sysboot Mount
⑥ enter XFS_ Repair – V – L path in the figure above
⑦ wait for the file to be cleaned before the command line appears. Enter the command reboot to restart the virtual machine
Because Mongo is abnormally closed, an error message of “error: child process failed, exited with error number 1” may appear when it is started again.
Step 1: delete the lock file
Find Mongo directory and delete mogod lock
Step 2: create a new log file
Find the log file directory of Mongo and delete or modify the original log file name
[because I don’t want to modify Mongo’s configuration file, I modified the file name and added a file with the same name as the original file. I can also take another name and modify Mongo configuration]
Step 3 try to restart
Generally, the restart is successful at this step.
If it still fails, take a look at Mongo’s log file
the errors reported in my log file are as follows:
2021-12-16T11:58:12.810+0800 I CONTROL [main] ***** SERVER RESTARTED *****
2021-12-16T11:58:12.815+0800 I CONTROL [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'
2021-12-16T11:58:12.820+0800 I CONTROL [main] ERROR: Cannot write pid file to /var/run/mongodb/mongod2.pid: No such file or directory
Then go to the prompt “/var/run” directory, create a new mongodb folder, and restart. Start successfully and solve the problem!
Running LIO-SAM reported the following error:
lio_sam/lio_sam_imuPreintegration: error while loading shared libraries: libmetis.so: cannot open shared object file: No such file or directory
Solution:
Use the following code to install:
sudo apt-get install libparmetis-dev
Problem solved successfully
I encountered this error when compiling the camodacal project:
/usr/local/include/ceres/internal/integer_sequence_algorithm.h:64:21: error: ‘integer_sequence’ is not a member of ‘std’
struct SumImpl<std::integer_sequence<T, N, Ns...>> {
^~~~~~~~~~~~~~~~
/usr/local/include/ceres/internal/integer_sequence_algorithm.h:64:21: error: ‘integer_sequence’ is not a member of ‘std’
/usr/local/include/ceres/internal/integer_sequence_algorithm.h:64:46: error: wrong number of template arguments (3, should be 1)
struct SumImpl<std::integer_sequence<T, N, Ns...>> {
^~~
/usr/local/include/ceres/internal/integer_sequence_algorithm.h:60:8: note: provided for ‘template<class Seq> struct ceres::internal::SumImpl’
struct SumImpl;
^~~~~~~
/usr/local/include/ceres/internal/integer_sequence_algorithm.h:64:49: error: expected unqualified-id before ‘>’ token
struct SumImpl<std::integer_sequence<T, N, Ns...>> {
^~
/usr/local/include/ceres/internal/integer_sequence_algorithm.h:71:21: error: ‘integer_sequence’ is not a member of ‘std’
struct SumImpl<std::integer_sequence<T, N1, N2, Ns...>> {
^~~~~~~~~~~~~~~~
/usr/local/include/ceres/internal/integer_sequence_algorithm.h:71:21: error: ‘integer_sequence’ is not a member of ‘std’
/usr/local/include/ceres/internal/integer_sequence_algorithm.h:71:51: error: wrong number of template arguments (4, should be 1)
struct SumImpl<std::integer_sequence<T, N1, N2, Ns...>> {
^~~
/usr/local/include/ceres/internal/integer_sequence_algorithm.h:60:8: note: provided for ‘template<class Seq> struct ceres::internal::SumImpl’
struct SumImpl;
^~~~~~~
/usr/local/include/ceres/internal/integer_sequence_algorithm.h:71:54: error: expected unqualified-id before ‘>’ token
struct SumImpl<std::integer_sequence<T, N1, N2, Ns...>> {
^~
/usr/local/include/ceres/internal/integer_sequence_algorithm.h:78:21: error: ‘integer_sequence’ is not a member of ‘std’
struct SumImpl<std::integer_sequence<T, N1, N2, N3, N4, Ns...>> {
^~~~~~~~~~~~~~~~
/usr/local/include/ceres/internal/integer_sequence_algorithm.h:78:21: error: ‘integer_sequence’ is not a member of ‘std’
In the final analysis, it is the version of Ceres. There are many online solutions that may work for other projects:
Modify the cmakelists file:
set(CMAKE_CXX_FLAGS "-std=c++11")
Is:
set(CMAKE_CXX_STANDARD 11)
Or:
set(CMAKE_CXX_STANDARD 14)
Details can be found in the ceres source code description at:
https://github.com/ceres-solver/ceres-solver/issues/604
But if it still doesn’t work, for example if I compile an old project like CamOdoCal, I can return the ceres version to 1.1.4
The SVN server version is too old to support tlsv1.0 0
The development client system is deepin (v20.3). Check/etc/SSL/OpenSSL CNF file
[system_default_sect]
MinProtocol = TLSv1. 2
CipherString = DEFAULT@SECLEVEL =2
the system supports to 1.2 by default, changes to 1.0, and then submits the problem for solution.
The following error occurs during a MySQL database backup:
InnoDB: Operating system error number 24 in a file operation.
InnoDB: Error number 24 means ‘Too many open files’
InnoDB: Some operating system error numbers are described at http://dev.mysql.com/doc/refman/5.7/en/operating-system-error-codes.html
It is found that there are too many data files:
a total of 90811 data files.
View number of open files:
[root@localhost ~]# ulimit -Sn
1024
[root@localhost ~]# ulimit -Hn
4096
Description of this check command:
ulimit [-HSTabcdefilmnpqrstuvx [limit]]
Provides control over the resources available to the shell and to processes started by it, on systems that allow such control. The -H and -S options specify that the hard or soft
limit is set for the given resource. A hard limit cannot be increased by a non-root user once it is set; a soft limit may be increased up to the value of the hard limit.
-n The maximum number of open file descriptors (most systems do not allow this value to be set)
Query the maximum number of files opened by the operating system:
# cat /proc/sys/fs/nr_open
1048576
In the file/etc/security/limits Conf settings:
mysql hard nofile 65535
mysql soft nofile 65535
mysql hard nproc 65535
mysql soft nproc 65535
You can also replace MySQL with *
the problem of re backup is solved.
Environmental description
System: centos7 (3.10.0)
Driver version: 00014996-rtl8192eu_linux_v5.6.3.1_34030_COEX20171113-0047.20190613.zip
Network card: Realtek rtl8192eu
Error log
In file included from /home/w1206/RTL8192EU_linux_v5.6.3.1_34030_COEX20171113-0047.20190613/driver/rtl8192EU_WiFi_linux_v5.6.3.1_34030.20190613_COEX20171113-0047/include/osdep_service_linux.h:93:0,
from /home/w1206/RTL8192EU_linux_v5.6.3.1_34030_COEX20171113-0047.20190613/driver/rtl8192EU_WiFi_linux_v5.6.3.1_34030.20190613_COEX20171113-0047/include/osdep_service.h:50,
from /home/w1206/RTL8192EU_linux_v5.6.3.1_34030_COEX20171113-0047.20190613/driver/rtl8192EU_WiFi_linux_v5.6.3.1_34030.20190613_COEX20171113-0047/include/drv_types.h:27,
from /home/w1206/RTL8192EU_linux_v5.6.3.1_34030_COEX20171113-0047.20190613/driver/rtl8192EU_WiFi_linux_v5.6.3.1_34030.20190613_COEX20171113-0047/os_dep/linux/ioctl_cfg80211.c:17:
include/net/cfg80211.h:5502:6: note: expected ‘gfp_t’ but argument is of type ‘unsigned char *’
void cfg80211_roamed(struct net_device *dev, struct cfg80211_roam_info *info,
^
/home/w1206/RTL8192EU_linux_v5.6.3.1_34030_COEX20171113-0047.20190613/driver/rtl8192EU_WiFi_linux_v5.6.3.1_34030.20190613_COEX20171113-0047/os_dep/linux/ioctl_cfg80211.c:1130:4: error: too many arguments to function ‘cfg80211_roamed’
, GFP_ATOMIC);
^
Solution:
Modify IOCTL_cfg80211.C Documents
@@ -1036,7 +1046,7 @@
#ifdef CONFIG_P2P
struct wifidirect_info *pwdinfo = &(padapter->wdinfo);
#endif
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0) //change by wellnw 20211213
struct cfg80211_roam_info roam_info ={};
#endif
@@ -1109,7 +1119,7 @@
notify_channel = ieee80211_get_channel(wiphy, freq);
#endif
- #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0)
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0) //change by wellnw 20211213
roam_info.bssid = cur_network->network.MacAddress;
roam_info.req_ie = pmlmepriv->assoc_req + sizeof(struct rtw_ieee80211_hdr_3addr) + 2;
roam_info.req_ie_len = pmlmepriv->assoc_req_len - sizeof(struct rtw_ieee80211_hdr_3addr) - 2;
$ usec
Error opening terminal: xterm-256color.
1. If the user directory
$ cd ~
2. Add Bash_Profile file
$ vim .bash_profile
3. Add the following two lines to the Bash_profile, save and exit.
export TERMINFO=/usr/share/terminfo
export TERM=xterm-basic
4. Update to make it effective
$ source .bash_profile
When running the program under CentOS 8, I found the error while loading shared libraries. I didn’t know the solution for a while. Now I have explored and solved it, as follows:
1. Find the path where the missing library is located {find/- name} XXX
2. Put the path in /etc/ld.so.conf
3. At the command line, enter ldconfig
4. No error will be reported after compiling again
Declare the global variable. The global function must be declared in CPP. If other classes refer to the global variable, include the H file of the CPP, and then extern. Otherwise, the repeated definition error is likely to occur.
How does this “easy” explain?
For example, if a global variable is declared in A.H
int Global;
In B.H
include "A.h"
.....
extern int Global;
......
If you include A.H, it is equivalent to including the declaration of global variables in A.H, and the compiler will consider it a duplicate definition.
Therefore, global variables and function declarations must be in CPP when The vs compiler reports this error when there is a function implementation in the H file.
Solution:
1 Yes Add inline
2 before the function declaration in H In project – > Attribute – > Linker – > Command line – > Add/force to additional options
The above is loaded from David_H
I also encountered this error, but the whole project contains too many files to analyze the inclusion relationship, but the problem should be similar.
my solution is:
Project – > Properties – > Linker – > Command line – > Add /force
to additional options
It solved the error, but there were a lot of warnings.
Project environment
Vue project
Cause of problem
The number of file monitoring is too large and the system limits it
Modify {etc/sysctl.d
fs.inotify.max_user_watches = 524288
Apply changes
sudo sysctl -p --system
Docker inherits some setting files on the host. In order to prevent global impact, the above files will be set to read only in docker. Therefore, you need to change the above configuration on the host. After the host changes, docker automatically inherits.