今天我正在讨论库没有入口点。通常可执行文件加载库,入口点是可执行文件本身的主要入口点。
是否存在例外情况,其中库本身可以有一个入口点?
更新:
@sgr91 解释说 DllMain 是 Windows 中的入口点!那么Linux呢?或者它只是 Windows 的一个功能?
到目前为止,我们手工管理服务器的crontabs.
我看到了这个:
http://django-extensions.readthedocs.org/en/latest/jobs_scheduling.html
这是一个不错的django应用程序,因为您只需要编辑一次crontab.
您输入一次这样的行,并且将来软件更新就足够了,无需手动修改crontab来添加新作业.
@hourly /path/to/my/project/manage.py runjobs hourly
Run Code Online (Sandbox Code Playgroud)
我不喜欢这个:它需要django.
有人看过一个没有这种"大"依赖的解决方案吗?
例如,使用EntryPoints查找所有包含每小时/每周/每月要完成的事项的解决方案?
更新
所有cron作业都是按linux用户安装的,而不是root用户.
我正在使用IntelliJ IDEA.我尝试了它附带的"检查代码"功能,我想修复一个叫做"入口点"的东西.这与我的枚举和主要方法有关.我想知道入口点是什么以及如何解决该错误.
是否可以在 setup.py 中定义条件入口点?我注意到可以使用 来标记入口点extras,但即使安装的包没有该额外功能,该入口点也将可用。
setup(name='my.package',
...
extras_require={
'special': [
'dependency1',
'dependency2',
],
},
...
entry_points="""
[custom_entrypoint]
handlername = my.package.special:feature [special]
""",
)
Run Code Online (Sandbox Code Playgroud)
custom_entrypoint即使安装的软件包没有该功能,该功能也可用( special) pip install my.package[special]。有没有一种简单的方法可以让这样的事情发挥作用?
我正试图用这个工具链使用CMake在arm架构中建立一个hello world
我的主要
int main()
{
char *str = "Hello World";
return 0;
}
Run Code Online (Sandbox Code Playgroud)
还有我的CMakeLists.txt
cmake_minimum_required(VERSION 3.4)
SET(PROJ_NAME arm-hello-world-nostdlib)
PROJECT(${PROJ_NAME})
# Include directories with headers
#---------------------------------------------------#
INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_SOURCE_DIR}/include )
# Source
#---------------------------------------------------#
FILE(GLOB ${PROJ_NAME}_SRC
"src/*.c"
)
FILE(GLOB ${PROJ_NAME}_HEADERS
"include/*.h"
)
# Create Exe
#---------------------------------------------------#
ADD_EXECUTABLE(${PROJ_NAME} ${${PROJ_NAME}_SRC} ${${PROJ_NAME}_HEADERS})
# Specify libraries or flags to use when linking a given target.
#---------------------------------------------------#
TARGET_LINK_LIBRARIES(${PROJ_NAME} -nostdlib --specs=rdimon.specs -lm -lrdimon)
Run Code Online (Sandbox Code Playgroud)
此配置启动警告:
[100%] Linking C executable arm-hello-world-nostdlib
/usr/lib/gcc/arm-none-eabi/5.2.0/../../../../arm-none-eabi/bin/ld: warning: cannot find entry symbol _start; …Run Code Online (Sandbox Code Playgroud) 在我的appdelegate中,我想检查一下globUs.hasName.如果是的话,我希望Entry Point应用程序成为我的main故事板.如果不是,我希望Entry Point应用程序成为我的newUser故事板.如何设置应用的入口点?如果我不能,实现此功能的最有效方法是什么?
我想知道ret从程序的入口点返回是否合法.
NASM示例:
section .text
global _start
_start:
ret
; Linux: nasm -f elf64 foo.asm -o foo.o && ld foo.o
; OS X: nasm -f macho64 foo.asm -o foo.o && ld foo.o -lc -macosx_version_min 10.12.0 -e _start -o foo
Run Code Online (Sandbox Code Playgroud)
ret 从堆栈中弹出一个返回地址并跳转到它.
但是堆栈的顶部字节是程序入口点的有效返回地址,还是我必须调用exit?
此外,上面的程序不会在OS X上发生段错误.它在哪里返回?
我正在试验rundll32.exe和user32.dll。例如,要锁定我的工作站,我键入:
rundll32.exe user32.dll, LockWorkStation
Run Code Online (Sandbox Code Playgroud)
我想在user32.dll 中尝试其他命令(入口点),但我不知道它们是什么。有没有办法确定user32.dll 中的所有入口点或更一般地确定任何 dll 中的入口点?还有什么是 dll 函数调用的有效参数?
请注意,我最终要做的是使用 rundll32.exe 打开开始菜单。如果有人知道哪个 dll/入口点会导致开始菜单弹出,请告诉我。
谢谢!
我的Dockerfile看起来像:
FROM ubuntu:18.04
RUN apt-get ...
...
COPY app /bin
Run Code Online (Sandbox Code Playgroud)
我的可执行文件app只是bash脚本:
make -f /app/makefile $@
Run Code Online (Sandbox Code Playgroud)
当我尝试跑步
docker run -v "`pwd`:/project" -it --rm my_image app
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
standard_init_linux.go:207: exec user process caused "exec format error"
make: *** [run] Error 1
Run Code Online (Sandbox Code Playgroud)
我该怎么办?
entry-point ×10
assembly ×2
dll ×2
python ×2
.net ×1
appdelegate ×1
arm ×1
assemblies ×1
c ×1
c# ×1
crontab ×1
django ×1
docker ×1
dockerfile ×1
ios ×1
java ×1
linux ×1
macos ×1
return ×1
rundll32 ×1
setuptools ×1
startup ×1
swift ×1