この問題は、countryServer をバックグラウンドで実行してから強制終了した後に発生します。新しいバージョンを再コンパイルしようとすると、これが得られます
root@ubuntu:/home/baoky/shell_assignment/shell_assn2# g++ -o countryServer CountryServer.cpp
root@ubuntu:/home/baoky/shell_assignment/shell_assn2# ./countryServer &
[1] 3097
root@ubuntu:/home/baoky/shell_assignment/shell_assn2#
Running server program 'css' ......
Country Directory server started
root@ubuntu:/home/baoky/shell_assignment/shell_assn2# ps
PID TTY TIME CMD
2993 pts/3 00:00:00 su
3001 pts/3 00:00:00 bash
3097 pts/3 00:00:00 countryServer
3098 pts/3 00:00:00 ps
root@ubuntu:/home/baoky/shell_assignment/shell_assn2# kill 3097
[1]+ Terminated ./countryServer
root@ubuntu:/home/baoky/shell_assignment/shell_assn2# g++ -o countryServer CountryServer.cpp
/usr/bin/ld: cannot open output file countryServer: No such device or address
collect2: ld returned 1 exit status
root@ubuntu:/home/baoky/shell_assignment/shell_assn2# ls -l
total 60
-rw-r--r-- 1 baoky baoky 19545 Aug 2 10:33 Countries.txt
-rwxr-xr-x 1 root root 14756 Aug 4 03:17 countryClient
-rw-r--r-- 1 baoky baoky 3514 Aug 4 03:19 CountryClient.cpp
-rw-r--r-- 1 baoky baoky 4740 Aug 4 2012 CountryData.c
-rw-r--r-- 1 baoky baoky 2022 Aug 2 10:33 CountryData.h
srwxr-xr-x 1 root root 0 Aug 4 03:29 countryServer
-rw-r--r-- 1 baoky baoky 7762 Aug 4 03:18 CountryServer.cpp
/usr/bin/ld: cannot open output file countryServer: No such device or address collect2: ld returned 1 exit status というエラーが表示されます
rm -rf countryServer を実行すれば修正できます
しかし、古いcountryServerを上書きできるように修正するにはどうすればよいですか(プロセスを強制終了して再コンパイルした後)