我有一个正在建设的图书馆.当我运行以下任何一个时,我的所有对象都会连续编译和链接:
ar rcs lib/libryftts.a $^
gcc -shared $^ -o lib/libryftts.so
在我的Makefile中.我也能够成功安装它们/usr/local/lib
当我用nm测试文件时,所有的功能都在那里.我的问题是,当我跑步gcc testing/test.c -lryftts -o test && file ./test
或gcc testing/test.c lib/libryftts.a -o test && file ./test
它说:
test: ELF 64-bit LSB shared object
而不是test: ELF 64-bit LSB executable
像我期望的那样.我究竟做错了什么?
我有一个正在使用的模块化引导加载程序。我觉得设置它使用 gas 比将 nasm 移植到 cmake 会更痛苦。似乎不是这样。NAsm 无法找到包含文件。我错过了什么?
整个代码可以在这个 Github Repo 中找到
这是项目布局:
.
??? CMakeLists.txt
??? Failing_module
??? CMakeLists.txt
??? Print.inc
??? Stage1
??? Stage1.asm
Run Code Online (Sandbox Code Playgroud)
./CMakeLists.txt:
cmake_minimum_required(VERSION 3.6)
project(fails C ASM_NASM)
add_subdirectory(Failing_module)
Run Code Online (Sandbox Code Playgroud)
Failing_module/CMakeLists.txt:
enable_language(ASM_NASM)
set(CMAKE_ASM_NASM_OBJECT_FORMAT bin)
set(module_SRCS Stage1/Stage1.asm)
set(CMAKE_NASM_LINK_EXECUTABLE nasm)
add_executable(Stage1.bin ${module_SRCS})
set_target_properties(Stage1.bin PROPERTIES LINKER_LANGUAGE NASM)
install(TARGETS Stage1.bin DESTINATION bin)
Run Code Online (Sandbox Code Playgroud)
Failing_module/Stage1/Stage1.asm:
bits 16
jmp main
%include "Print.inc"
msgHello db "Hello World", 0x00
main:
mov s, msgHello
call Print
Run Code Online (Sandbox Code Playgroud)
Failing_module/Print.inc
Print:
lodsb
or al, al
jz PrintDone
mov …
Run Code Online (Sandbox Code Playgroud) 我正在使用python 3.3中的tkinter模块.我对此比较新,我正在使用输入框.出于某种原因,当我运行以下代码时,我收到一条错误消息,指出AttributeError:'NoneType'对象没有属性'get'.有人可以向我解释原因吗?我做了一个类似的程序,只有一个条目,工作得很好.
from tkinter import *
master =Tk()
class quad(object):
def __init__(self, ae, be, ce):
self.ae = ae
self.be = be
self.ce = ce
def calculate(self):
a = self.ae.get()
b = self.be.get()
c = self.ce.get()
A = float(a)
B = float(b)
C = float(c)
D = (-B)/(2*A)
E = ((B**2 -4*A*C)**(.5))/(2*A)
first = D + E
second = D - E
print(first, "\n", second)
Label(master, text='A=').grid(row=0, column=0)
Label(master, text='B=').grid(row=1, column=0)
Label(master, text='C=').grid(row=2, column=0)
ae = Entry(master).grid(row=0, column=1)
be = Entry(master).grid(row=1, …
Run Code Online (Sandbox Code Playgroud)