我正在运行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) 我现在正在寻求帮助,将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) 我正在尝试让 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)