- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我不知道我收到以下错误:
proc1.o: In function `procEx1':
/cygdrive/c/armprojects/projekt/motor/proc1.c:45: undefined reference to `motorTest_test'
collect2: ld returned 1 exit status
make: *** [main.hex] Error 1
我已经检查了有关此问题的以下主题:
这是我的输出:
13:46:46 **** Build of configuration Default for project motor ****
make all
make[1]: Entering directory `/cygdrive/c/armprojects/projekt/motor/startup'
rm -f .depend
arm-elf-gcc -c -mcpu=arm7tdmi -I . -DEL -DGCC -mthumb-interwork -DLPC2148 -Os - gdwarf-2 -Wall -Wcast-align -Wcast-qual -Wimplicit -Wnested-externs -Wpointer-arith -Wswitch -Wreturn-type -Wa,-ahlms=consol.lst -o consol.o consol.c
arm-elf-gcc -c -mcpu=arm7tdmi -I . -DEL -DGCC -mthumb-interwork -DLPC2148 -Os - gdwarf-2 -Wall -Wcast-align -Wcast-qual -Wimplicit -Wnested-externs -Wpointer-arith -Wswitch -Wreturn-type -Wa,-ahlms=framework.lst -o framework.o framework.c
framework.c: In function 'exceptionHandlerInit':
framework.c:201: warning: pointer targets in assignment differ in signedness
arm-elf-gcc -c -mcpu=arm7tdmi -I . -DEL -DGCC -mthumb-interwork -DLPC2148 -x assembler-with-cpp -gstabs -Wa,-alhms=startup.lst -o startup.o startup.S
arm-elf-ar cr libea_startup_thumb.a consol.o framework.o startup.o
arm-elf-ranlib libea_startup_thumb.a
make[1]: Leaving directory `/cygdrive/c/armprojects/projekt/motor/startup'
make[1]: Entering directory `/cygdrive/c/armprojects/projekt/motor/LCD'
rm -f .depend
arm-elf-gcc -c -mcpu=arm7tdmi -I . -DEL -DGCC -mthumb-interwork -DLPC2148 -O0 - gdwarf-2 -Wall -Wcast-align -Wcast-qual -Wimplicit -Wnested-externs -Wpointer-arith -Wswitch -Wreturn-type -Wa,-ahlms=LCD.lst -o LCD.o LCD.c
arm-elf-ar cr lib_LCD.a LCD.o
arm-elf-ranlib lib_LCD.a
make[1]: Leaving directory `/cygdrive/c/armprojects/projekt/motor/LCD'
make[1]: Entering directory `/cygdrive/c/armprojects/projekt/motor/interrupt'
rm -f .depend
arm-elf-gcc -c -mcpu=arm7tdmi -I . -DEL -DGCC -mthumb-interwork -DLPC2148 -Os - gdwarf-2 -Wall -Wcast-align -Wcast-qual -Wimplicit -Wnested-externs -Wpointer-arith -Wswitch -Wreturn-type -Wa,-ahlms=interrupt_timer.lst -o interrupt_timer.o interrupt_timer.c
arm-elf-gcc -c -mcpu=arm7tdmi -I . -DEL -DGCC -mthumb-interwork -DLPC2148 -Os - gdwarf-2 -Wall -Wcast-align -Wcast-qual -Wimplicit -Wnested-externs -Wpointer-arith -Wswitch -Wreturn-type -Wa,-ahlms=interrupt_tacho.lst -o interrupt_tacho.o interrupt_tacho.c
arm-elf-ar cr lib_interrupt.a interrupt_timer.o interrupt_tacho.o
arm-elf-ranlib lib_interrupt.a
make[1]: Leaving directory `/cygdrive/c/armprojects/projekt/motor/interrupt'
rm -f .depend
arm-elf-gcc -c -mcpu=arm7tdmi -mthumb-interwork -I./startup -DEL -DGCC -mthumb-interwork -mthumb -DTHUMB_CSTART -DTHUMB_INTERWORK -mthumb-interwork -DLPC2148 -O0 -gdwarf-2 -Wall - Wcast-align -Wcast-qual -Wimplicit -Wnested-externs -Wpointer-arith -Wswitch -Wreturn-type -Wa,-ahlms=main.lst -o main.o main.c
arm-elf-gcc -c -mcpu=arm7tdmi -mthumb-interwork -I./startup -DEL -DGCC -mthumb-interwork -mthumb -DTHUMB_CSTART -DTHUMB_INTERWORK -mthumb-interwork -DLPC2148 -O0 -gdwarf-2 -Wall - Wcast-align -Wcast-qual -Wimplicit -Wnested-externs -Wpointer-arith -Wswitch -Wreturn-type -Wa,-ahlms=proc1.lst -o proc1.o proc1.c
motor/motor_test.h:18: warning: 'duty1' defined but not used
motor/motor_test.h:19: warning: 'duty2' defined but not used
arm-elf-gcc -c -mcpu=arm7tdmi -mthumb-interwork -I./startup -DEL -DGCC -mthumb-interwork -mthumb -DTHUMB_CSTART -DTHUMB_INTERWORK -mthumb-interwork -DLPC2148 -O0 -gdwarf-2 -Wall - Wcast-align -Wcast-qual -Wimplicit -Wnested-externs -Wpointer-arith -Wswitch -Wreturn-type -Wa,-ahlms=proc2.lst -o proc2.o proc2.c
arm-elf-gcc -c -mcpu=arm7tdmi -mthumb-interwork -I./startup -DEL -DGCC -mthumb-interwork -mthumb -DTHUMB_CSTART -DTHUMB_INTERWORK -mthumb-interwork -DLPC2148 -O0 -gdwarf-2 -Wall - Wcast-align -Wcast-qual -Wimplicit -Wnested-externs -Wpointer-arith -Wswitch -Wreturn-type -Wa,-ahlms=proc3.lst -o proc3.o proc3.c
arm-elf-gcc main.o proc1.o proc2.o proc3.o startup/libea_startup_thumb.a pre_emptive_os/pre_emptive_os.a LCD/lib_LCD.a interrupt/lib_interrupt.a -I./startup - mcpu=arm7tdmi -mthumb-interwork -mthumb-interwork -nostartfiles -T build_files/link_32k_512k_rom.ld -o main.elf -Wl,-Map=main.map,--cref
proc1.o: In function `procEx1':
/cygdrive/c/armprojects/projekt/motor/proc1.c:45: undefined reference to `motorTest_test'
collect2: ld returned 1 exit status
make: *** [main.hex] Error 1
13:46:52 Build Finished (took 6s.46ms)
如果您愿意,可以在以下位置查看我的存储库: http://dt3-robotlego-2012ht-white.googlecode.com/svn/branches/motor/Project12/
这是我的一些代码(相关部分):
proc1.c
/*
* proc1.c
*
* Created on: 31 okt 2011
* Author: Tommy
*/
/*****************************************************************************
* Process 1
****************************************************************************/
#include "pre_emptive_os/api/osapi.h"
#include "general.h"
#include "startup/lpc2xxx.h"
#include "startup/printf_P.h"
#include "startup/ea_init.h"
#include "startup/consol.h"
#include "startup/config.h"
#include "startup/framework.h"
#include "utils/utils.h"
#include "LCD/LCD.h"
#include "motor/motor_test.h"
extern long const delayshort;
extern long const delaylong;
extern tCntSem mutexLCD;
/*****************************************************************************
* Function prototypes
****************************************************************************/
void LCD_clearDisplay(void);
/****************************************************************************/
void
procEx1(void* arg)
{
tU8 error;
for (;;) { // QUESTION: why use for-loop?
osSemTake(&mutexLCD, 0, &error);
// REMARK: doesn't work at the moment... issues including runPwm()
motorTest_test();
osSemGive(&mutexLCD, &error);
osSleep(100);
}
}
void LCD_clearDisplay(void) {
delay(delayshort);
send_instruction(1); //clears the display
delay(delaylong);
send_instruction(2); //the cursor is moved to the first position
}
motor_test.h
/******************************************************************************
* Includes
*****************************************************************************/
#include "motor.h"
/******************************************************************************
* Defines
*****************************************************************************/
#define TASK 9 // task 1 - use circulary loop
// task 2 - use constant PWM signal
// ...
#define RUN_SETPWM_IN_LOOP 1 // dictates whether setPwmDutyPercentx(tU32) should be run outside the "TASK conditional statement"
/*****************************************************************************
* Global variables
****************************************************************************/
static tU32 duty1;
static tU32 duty2;
/******************************************************************************
* Prototypes
*****************************************************************************/
void motorTest_test();
void dev_run(tU32 duty1, tU32 duty2);
void pwm_motor_init();
void pwm_motor_run(tU32 duty1, tU32 duty2);
void change_mode(short mode);
motor_test.c
#include "motor_test.h"
/******************************************************************************
* Functions
*****************************************************************************/
void motorTest_test() {
init();
dev_run(duty1, duty2);
}
// dev function - not used in release
// COMMENT: PWM signal is continuously generated when the setPwmDutyPercent(tU32) function is called, no need to endlessly iterate the calls
// EDIT: seems like you need to iterate over the setPwmDutyPercent(tU32) functions afterall...
// COMMENT: the duty sets the speed of the motor driver
// the value that can be set is 0-10000
// a higher value means a lower speed, conversely a low value means a higher speed
void dev_run(tU32 duty1, tU32 duty2) {
//wait 10 ms
//delayMs(10);
//wait 100 ms
//delayMs(100);
// COMMENT: try running without delays
// seems to work fine..
while (1) {
//set frequency value
if (RUN_SETPWM_IN_LOOP == 1) {
setPwmDutyPercent1(duty1);
setPwmDutyPercent2(duty2);
}
// delayMs(10);
switch (TASK) {
case 1: {
//update duty cycle (0.00 - 100.00%, in steps of 0.10%)
duty1 += 10;
if (duty1 > 10000)
duty1 = 0;
break;
}
case 2: {
duty1 = 0;
duty2 = 8500;
// COMMENT: slowest speed = 8500 duty
// fastest speed = 0 duty
break;
}
case 3: { // left
duty1 = 6000;
duty2 = 8000;
break;
}
case 4: { // right
duty1 = 8000;
duty2 = 6000;
break;
}
case 5: {
duty1 = 6000;
duty2 = 6000;
break;
}
case 6: {
short delay = 1;
short duty_vals = 6000;
short section[3] = { 1, 0, 0 };
if (section[0] == 1) {
setMode1(MODE_FORWARD);
setMode2(MODE_FORWARD);
duty1 = duty_vals;
duty2 = duty_vals;
setPwmDutyPercent1(duty1);
setPwmDutyPercent2(duty2);
//delayMs(0);
delay_millis(delay);
}
if (section[1] == 1) {
setMode1(MODE_BRAKE);
setMode2(MODE_BRAKE);
setPwmDutyPercent1(duty1);
setPwmDutyPercent2(duty2);
delay_millis(delay);
}
if (section[2] == 1) {
setMode1(MODE_REVERSE);
setMode2(MODE_REVERSE);
duty1 = duty_vals;
duty2 = duty_vals;
setPwmDutyPercent1(duty1);
setPwmDutyPercent2(duty2);
delay_millis(delay);
}
break;
}
case 7: {
pwm_motor_init();
duty1 = 6000;
duty2 = 6000;
//delayMs(10);
delay_millis(10);
pwm_motor_run(duty1, duty2);
break;
}
case 8: {
setMode1(MODE_FORWARD);
setMode2(MODE_FORWARD);
delay_millis(700);
duty1 = 7000;
duty2 = 7000;
setMode1(MODE_REVERSE);
setMode2(MODE_REVERSE);
delay_millis(700);
duty1 = 1000;
duty2 = 1000;
break;
}
case 9: {
duty1 = 0;
duty2 = 0;
break;
}
}
}
}
/*****************************************************************************
* Temporary developer functions
****************************************************************************/
void pwm_motor_init() {
setMode1(MODE_FORWARD);
setMode2(MODE_FORWARD);
delay_millis(10);
}
void pwm_motor_run(tU32 duty1, tU32 duty2) {
setPwmDutyPercent1(duty1);
setPwmDutyPercent2(duty2);
while(1) {
change_mode(MODE_FORWARD);
change_mode(MODE_BRAKE);
change_mode(MODE_REVERSE);
change_mode(MODE_BRAKE);
}
}
void change_mode(short mode) {
setMode1(mode);
setMode2(mode);
delay_millis(10);
}
最佳答案
确保将所有 C 源代码包含到 your makefile
的 CSRCS
变量中。然后构建系统将知道它也必须编译该文件,并将生成的对象包含到链接中。
关于c - undefined reference ... - 链接问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14380110/
我有一个网站,并且我使用 javascript sdk 添加了“点赞”按钮。 这是代码 (function(d, s, id) { var js, fjs = d.g
我知道 HTML 是逐行读取的。当您链接多个 css 文件(如规范化文件和样式表文件)时,由于 CSS 重要性特异性和源顺序,样式表文件应链接在规范化文件之后。看起来这不会影响链接的 JavaScri
我正在使用官方 Bootstrap site 提供的 CDN 链接在我的网络应用程序中使用面板进行测试 在彻底检查我的代码后,面板没有显示。 但是我在 SO 上看到了类似的帖子并且 CDN 链接不同
这里是编码初学者。我正在尝试为我的移动设备网站设置断点,以便我的网站适合小屏幕。我只是想检查如果我缩小视口(viewport)的宽度,背景颜色是否会改变,但没有发生任何变化。也许我只是对一个简单的错误
举一个我想要的例子,想象一下这个字符串: $text = 'lorem ipsum About us lorem ipsum'; 如果此字符串包含一个 href 以 / 开头的 anchor 链接,则
如何链接到 LaTeX 文档的另一部分或子部分?这种链接的常规范式是什么,像[链接名称]那样写,或者像网页超链接那样写? 最佳答案 链接到另一个部分需要您的部分进行一些额外的标记。要使用的命令是: \
我有一个订单表,其中包含订单号、客户 ID 和代理 ID。然后有一个带有 id 的客户表和一个带有 id 的代理表。 我需要获取所有具有来自代理 ID 'a03' 和代理 ID 'a05' 的订单的客
假设我有: dic = {"z":"zv", "a":"av"} ## Why doesn't the following return a sorted list of keys? keys = d
我在尝试链接到外部库时得到了一些奇怪的结果。如果我从命令行运行以下命令: gcc fftwTest.c -I../extlib/fftw-3.3.5-dll32 -L../extlib/fftw-3.
我认为我没有正确理解 jQuery 链接。我正在遍历一个数组并尝试将 div 元素添加到我的包装器 CSS 类中,每个 div 元素都有一个“click”类和自定义 css top 和 left 属性
HTML 使用超级链接与网络上的另一个文档相连。几乎可以在所有的网页中找到链接。点击链接可以从一张页面跳转到另一张页面。 HTML 超链接(链接) HTML使用标签 a 来设置超文本链接。 超链
这个问题在这里已经有了答案: How do I link to part of a page? (hash?) (7 个答案) Scroll Automatically to the Bottom
我想创建一个 Docker Swarm 集群,运行一个 Elasticsearch 实例、一个 MongoDB 实例和一个 grails 应用程序,每个都在单独的机器上。我正在使用 Docker Ma
我正在尝试将 CakePHP HTML Linker 用于以下代码 Add Cuisine 由于 span 标签需要在 a 标签内。我无法根据需要获得输出。关于如何完成它的任何建议? 最佳答案 禁用链
大家好, 我最近开发了一个应用程序,很快就会提交到 App Store。我想免费提交这个应用程序,并想知道我是否可以实现一个带有 PayPal 捐赠标志的按钮,上面基本上写着“捐赠用于开发”或与此相关
我想尝试在 dlang 中使用 libuv。我下载了这样的 dlang 绑定(bind): git clone git@github.com:tamediadigital/libuv.git 现在我接
我有一个节点(节点 a),各种其他节点(节点 b/c/d/e)与之引用。 我可以创建一个带有参数的 View 作为我正在查看的节点(节点 a),并获取引用该节点的节点列表。 基本上在节点 a 查看节点
我正在尝试建立一个常见问题页面,上面有目录,下面有答案。我想点击目录中的一个问题,并在同一页面上链接到相应的答案。我如何在 CakePHP 中使用 $this->Html->link() 执行此操作方
在 WooCommerce 3.0+ 中,我使用 js 创建了一些选项卡,每个选项卡中包含来自不同类别的产品。我已经设法修改了简单产品的添加到购物车链接,其中点击了 addtocart 按钮它进入下一
Delphi 2007/2009 奇怪的问题在这里: 根据设计时定义的组件属性,是否可以在链接中包含文件或保留文件? 示例:如果我将 SomeProperty 保留为真,则在编译时,单元 SomeUn
我是一名优秀的程序员,十分优秀!