Связанный .lib-файл связан с .dll
У меня была такая же проблема. Скажем, у меня есть проекты MyProject и TestProject. Я эффективно связал файл lib для MyProject с TestProject. Однако этот файл lib был создан, так как была построена DLL для MyProject. Кроме того, я не содержал исходный код для всех методов в MyProject, но только доступ к точкам входа DLL.
Чтобы решить проблему, я построил MyProject как LIB и связал TestProject с этим .lib-файлом (скопируйте вложенный файл .lib в папку TestProject). Затем я смогу снова создать MyProject как DLL. Он компилируется, поскольку lib, с которым связан TestProject, содержит код для всех методов в классах MyProject.
В каком каталоге находится файл .txt? cron запускает задания в вашем домашнем каталоге, поэтому, если ваш скрипт cd
не находится где-то еще, вот где он будет искать / create file.txt.
EDIT: Когда вы ссылаетесь на файл без указания его полный путь (например, file.txt
, в отличие от полного пути /home/myUser/scripts/file.txt
) в оболочке, предполагается, что вы ссылаетесь на файл в текущем рабочем каталоге. Когда вы запускаете скрипт (будь то интерактивно или через crontab), рабочий каталог сценария не имеет ничего общего с расположением самого скрипта; вместо этого он унаследован от того, что запускает скрипт.
Таким образом, если вы cd
(смените рабочий каталог) на каталог, в котором находится скрипт, а затем запустите его, file.txt
будет ссылаться на файл в тот же каталог, что и скрипт. Но если вы не cd
, сначала file.txt
будет ссылаться на файл в любом каталоге, в котором вы оказались, когда вы запускали скрипт. Например, если ваш домашний каталог / home / myUser, и вы открываете новую оболочку и сразу запускаете скрипт (как scripts/test.sh
или /home/myUser/scripts/test.sh
; ./test.sh
не будет работать), он коснется файла / home / myUser / file.txt, потому что / home / myUser - это ваш текущий рабочий каталог (и, следовательно, скрипт).
Когда вы запускаете скрипт из cron
, он делает практически то же самое: он запускается это с рабочим каталогом, установленным в ваш домашний каталог. Таким образом, все ссылки на файлы в скрипте берутся относительно вашего домашнего каталога, если только сценарий cd
не находится где-то в другом месте или не указывает абсолютный путь к файлу.
Укажите полный путь и предоставите правильное разрешение для файла сценария. Я попытался выполнить файл сценария для запуска через cron:
#!/bin/bash
/bin/mkdir /scratch/ofsaaweb/CHEF_FICHOME/ficdb/bin/crondir
И команда crontab
* * * * * /bin/bash /scratch/ofsaaweb/CHEF_FICHOME/ficdb/bin/test.sh
Это сработало для меня.
Попробуйте
# cat test.sh
#!/bin/bash
/bin/touch file.txt
cron as:
* * * * * /bin/sh /home/myUser/scripts/test.sh
И вы можете подтвердить это:
# tailf /var/log/cron
Самый простой способ - использовать GUI:
Для использования Gnome gnome-schedule (universe)
sudo apt-get install gnome-schedule
Для использования KDE kde-config-cron
It should be pre installed on Kubuntu
Но если вы используете безголовый Linux или не хотите использовать GUI, вы можете использовать:
crontab -e
Если вы введете его в терминал, вы получите таблицу. Теперь вы должны вставить свои cronjob. Отформатируйте задание следующим образом:
* * * * * YOURCOMMAND
- - - - -
| | | | |
| | | | +----- Day in Week (0 to 7) (Sunday is 0 and 7)
| | | +------- Month (1 to 12)
| | +--------- Day in Month (1 to 31)
| +----------- Hour (0 to 23)
+------------- Minute (0 to 59)
Также есть короткие шорты (если вы не хотите *):
@reboot --> only once at startup
@daily ---> once a day
@midnight --> once a day at midnight
@hourly --> once a hour
@weekly --> once a week
@monthly --> once a month
@annually --> once a year
@yearly --> once a year
Если вы хотите использовать шорты как cron (потому что они не работают или так):
@daily --> 0 0 * * *
@midnight --> 0 0 * * *
@hourly --> 0 * * * *
@weekly --> 0 0 * * 0
@monthly --> 0 0 1 * *
@annually --> 0 0 1 1 *
@yearly --> 0 0 1 1 *
Он должен работать правильно и в cron. Пожалуйста, проверьте ниже.
1- Вы редактируете правильный файл для установки cron.
2- Вы дали правильное разрешение (разрешение на выполнение) для скрипта, означающего, что ваш скрипт является исполняемым.