小编Jim*_*Jim的帖子

为什么arm-linux-gnueabi-g ++ - 4.4总是构建一个"7-A"二进制文件?

我正在运行Ubuntu 12:04LTS并安装了arm-linux-gnueabi C和C++编译器.编译的二进制文件不会在我的目标板上运行.看起来即使我指定了cpu和arch,编译器仍会为错误的CPU构建二进制文件.而不是atm9tdmi它构建和7-A.

我做错了什么或者我应该配置什么?谢谢.

~/ArmTest$ arm-linux-gnueabi-g++-4.4 -mcpu=arm9tdmi -march=armv4t -O main.cpp -o CPPTest

~/ArmTest$ readelf -A CPPTest 
Attribute Section: aeabi
File Attributes
  Tag_CPU_name: "7-A"
  Tag_CPU_arch: v7
  Tag_CPU_arch_profile: Application
  Tag_ARM_ISA_use: Yes
  Tag_THUMB_ISA_use: Thumb-2
  Tag_FP_arch: VFPv3-D16
  Tag_ABI_PCS_wchar_t: 4
  Tag_ABI_FP_denormal: Needed
  Tag_ABI_FP_exceptions: Needed
  Tag_ABI_FP_number_model: IEEE 754
  Tag_ABI_align_needed: 8-byte
  Tag_ABI_align_preserved: 8-byte, except leaf SP
  Tag_ABI_enum_size: int
  Tag_ABI_HardFP_use: SP and DP
  Tag_CPU_unaligned_access: v6
  Tag_DIV_use: Not allowed
~/ArmTest$ file CPPTest 
CPPTest: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.31, …
Run Code Online (Sandbox Code Playgroud)

linux gcc arm cross-platform embedded-linux

6
推荐指数
1
解决办法
6030
查看次数

使用Java帮助实际的TDD

我现在正在寻求帮助,将TDD用作真实世界的例子.大多数节目过于简单,并没有真正展示如何测试和重新考虑更复杂的类.以下是使用线程和网络套接字的代码示例.有人可以解释如何为这样的类创建一个独立的单元测试吗?谢谢.

public class BaseHandler  extends Thread {
  protected Socket mClientSocket;
  protected BufferedReader is = null;
  protected BufferedWriter os = null;
  private Logger mLogger = Logger.getLogger(WebTestController.class.getName());
  protected WebTestController mWebTestController;

  /*********************************************************************
   * 
   * @param piPort - int port to listen on
   */
  public BaseHandler(){
  }


  /*********************************************************************** cleanup
   * Ensure sockets are closed as to not run into bind errors
   */
  protected void cleanup() {
    try {
      if (is != null)
        is.close();
      if (os != null)
        os.close();
      if (mClientSocket != null)
        mClientSocket.close();
    } …
Run Code Online (Sandbox Code Playgroud)

java tdd

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

如何让 crosstool-ng C++ 编译器工作

我正在尝试让 crosstool-ng 与 C 和 C++ 一起工作。尽管我在使用 menuconfig 时选择了 C++,但它似乎并没有被构建。gcc 编译器按预期工作,但不是 g++

我不确定我做错了什么,所以任何帮助将不胜感激。

我按照此处找到的步骤操作: 使用 Crosstool-NG 构建嵌入式 ARM 系统

$ arm-unknown-linux-gnueabi-cpp main.cpp -o test
arm-unknown-linux-gnueabi-cpp: main.cpp: C++ compiler not installed on this system
Run Code Online (Sandbox Code Playgroud)

注意:arm-unknown-linux-gnueabi-g++bin 目录中没有找到 on。我试过跨工具版本 1.16.0 和 1.15.3

arm-unknown-linux-gnueabi-cpp -v
Using built-in specs.
Target: arm-unknown-linux-gnueabi
Configured with: /opt/crossArm/.build/src/gcc-4.3.2/configure --build=i686-build_pc-linux-gnu --host=i686-build_pc-linux-gnu --target=arm-unknown-linux-gnueabi --prefix=/opt/crossArm/.build/arm-unknown-linux-gnueabi/buildtools --with-local-prefix=/home/jgarvin/x-tools/arm-unknown-linux-gnueabi/arm-unknown-linux-gnueabi/sysroot --disable-libmudflap --with-sysroot=/home/jgarvin/x-tools/arm-unknown-linux-gnueabi/arm-unknown-linux-gnueabi/sysroot --enable-shared --with-pkgversion='crosstool-NG 1.16.0' --with-float=soft --enable-__cxa_atexit --with-gmp=/opt/crossArm/.build/arm-unknown-linux-gnueabi/buildtools --with-mpfr=/opt/crossArm/.build/arm-unknown-linux-gnueabi/buildtools --enable-target-optspace --disable-libgomp --disable-libmudflap --disable-nls --disable-multilib --enable-languages=c
Thread model: posix
gcc version 4.3.2 (crosstool-NG 1.16.0)
Run Code Online (Sandbox Code Playgroud)

代码 …

c++ linux arm cross-platform crosstool-ng

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

标签 统计

arm ×2

cross-platform ×2

linux ×2

c++ ×1

crosstool-ng ×1

embedded-linux ×1

gcc ×1

java ×1

tdd ×1