小编Jon*_*nio的帖子

使用 rustc 和 clang 运行 LLVM 文件

我正在尝试使用 clang 运行.ll文件并收到链接器错误。我有一个文件test.rs,只包含一个带有println!语句的主函数。我使用命令生成 LLVM IR rustc --emit=llvm-ir --crate-type=bin test.rs。当我尝试运行输出test.ll文件时clang test.ll,出现链接器错误:

Undefined symbols for architecture x86_64:
  "std::io::stdio::_print::h178318b95760562a", referenced from:
      rust_test::main::h84a9713c734a1b45 in rust_test-9ea667.o
  "_main", referenced from:
     implicit entry/start for main executable
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)

所以我认为 clang 找不到 Rust 库,并尝试使用命令提供它们的路径clang -L$HOME/.rustup/toolchains/<arch>/lib test.ll,但我收到相同的错误。


这里的目标是在 Rust 中创建几个函数,我将从 LLVM 调用它们,因此我将有一个自定义函数file.ll,它将使用 Rust LLVM IR …

llvm llvm-clang rust

5
推荐指数
0
解决办法
633
查看次数

在 Spring Boot 中创建新的实体对象

我希望有人能更清楚地了解我在 Spring Boot 项目中对 JPA 实体的困惑。我听说永远不应该调用newSpring 项目。我理解这是为了让 Spring 可以管理所有的 bean,并且可以通过注入或显式地通过应用程序上下文来获取 bean。

但是,我不清楚如何获得新的 JPA 实体。如果我有一个注释的类@Entity和一个处理我的数据访问的存储库类,我如何在我的服务层中获取一个新的实体对象?

我已经包含@EntityScan在我的应用程序的主类中,所以我假设 Spring 知道该实体。但是当我尝试通过 ApplicationContext 获取它时,会引发异常。这是有道理的,因为我不相信带@Entity注释的类是 Spring Bean,而且我认为用@Component. 任何澄清将不胜感激。

我目前正在使用new关键字并在服务层中自己创建实体对象。一个非常简单的例子如下:

实体/用户.java

@Entity
@Table(name = "users")
public class User {
    @Id
    private Long id;
    private String username;

    // Getters & Setters ...
}
Run Code Online (Sandbox Code Playgroud)

存储库/UserRepository.java

@Repository
public interface UserRepository extends CrudRepository<User, Long> {
    User findByUsername(String username);
}
Run Code Online (Sandbox Code Playgroud)

服务/UserServiceImpl.java

@Service
public class UserServiceImpl implements UserService {
    UserRepository userRepository; …
Run Code Online (Sandbox Code Playgroud)

java spring hibernate spring-data-jpa spring-boot

5
推荐指数
1
解决办法
2万
查看次数